Introduction | Quick References | How Do I ... Topics | Built-in Tools | Scripting and Programming
Hpmbcalc is a calculator designed for multiple-precision unsigned integer arithmetic. It provides a panel for typing and formatting an operand, testing the properties of an operand, and performing basic big number operations.

The panel consists of four Multibyte Hex Edit Boxes (as shown above):
: The first operand edit box.
The first operand is used in unary operations, binary operations, and 3-operand operations.
: The second operand edit box.
The second operand is used in binary operations and 3-operand operations.
: The third operand edit box.
The third operand is used only in 3-operand operations.
: The operation result edit box.
The box saves all the operation result except unary operators:
Increment, Decrement, Not, Lsh, Rsh,
which assign operation result to the source operand.and more than fifty buttons classified as six groups:
:
Used to enter a digit.
:
Used to convert active operand (result) between hex, dec, oct, and bin number system.
:
Used to change byte order of an operand or swap two operands.
:
Used to perform a unary operation, a binary operation, or a 3-operand operation.
:
Used to manage calculator memory.
:
Used to show current operator and memory status.Using the panel, you can perform the following operations:
within above,
How to execute a unary operation?
The unary operations Square and Sqrt correspond with the following equation:
Thus, to perform one of the operations, you need:=
![]()
.
that you want to execute.
.Any other unary operations corresponds with the following equations:
=
![]()
=
![]()
To perform one of the operations, you need:=
![]()
,
, or
.
that you want to execute.
,
, or
.How to execute a binary operation?
A binary operation corresponds with the following equation:
To perform it, you need:=
![]()
![]()
.
.
that you want to execute.
.How to execute a 3-operand operation?
A 3-operand operations corresponds with the following equation:
To perform it, you need:=
![]()
![]()
![]()
.
.
.
that you want to execute.
.
To type an operand to
,
, or
, you need:
or
type your keyboard to enter a digit.
The
,
, and
all are
Multibyte Hex Edit Box. For more information about how to list and edit an operand,
please refer to Multibyte Hex Edit Box.
Using the
commands, you can
format an operand to its standard presentation or swap its byte order. The followings
are the commands that you can use:
How to convert number between Hex/Dec/Oct/Bin systems?
Using the
commands, you can
convert any big number between hex, dec, oct, and bin number system. The followings
are the general steps to do this:
buttons to toggle to the number system of your original data.
button to convert the operand.You can use Sqrt operator to calculate the square root of an operand, which will return the integer portion of the root.
.
.How to calculate Jacobi (Legendre) symbol?
The Jacobi(Legendre) symbol is a useful tool for keeping track of whether x is a quadratic residue modulo a number(prime) y. You can use Jn operator to calculate Jacobi(Legendre) symbol. The followings are the general steps to do this:
(0 <= x < y).
(y should be an odd integer and >= 3).
.
If result is FF FF FF FF, means that Jn(x|y) = -1.How to calculate modular exponentiation?
One of the most important arithmetic operations for public-key cryptography is modular exponentiation. You can use PMod operator to calculate x^y modulu z. The followings are the general steps to calculate a modular exponentiation:
.
.
.
.How to calculate modular inverse?
The multiplicative inverse of a modulu y is an integer r such that r*x modulu y = 1. If such a r exists, then it is unique, and x is said to be invertible. The followings are the general steps to calculate a modular inverse:
.
.
.
If result is 0, means that x is not invertible.