Members

Integer

Integer.ONE

Static
This member is static
Integer

Integer.ZERO

Static
This member is static

Constructor

new

Integer

(Array<number> bits, number sign)

Constructs a two’s-complement integer an array containing bits of the integer in 32-bit (signed) pieces, given in little-endian order (i.e., lowest-order bits in the first piece), and the sign of -1 or 0.

See the from* functions below for other convenient ways of constructing Integers.

The internal representation of an integer is an array of 32-bit signed pieces, along with a sign (0 or -1) that indicates the contents of all the other 32-bit pieces out to infinity. We use 32-bit pieces because these are the size of integers on which Javascript performs bit-operations. For operations like addition and multiplication, we split each number into 16-bit pieces, which can easily be multiplied within Javascript’s floating-point representation without overflow or change in sign.

Parameters:
Name Type Description
bits Array<number>

Array containing the bits of the number.

sign number

The sign of the number: -1 for negative and 0 positive.

Methods

abs

()

Returns a Integer whose value is the absolute value of this

Returns:
Type Description
Integer

add

(Integer other)

Returns the sum of this and the given Integer.

Parameters:
Name Type Description
other Integer

The Integer to add to this.

Returns:
Type Description
Integer

The Integer result.

and

(Integer other)

Returns the bitwise-AND of this Integer and the given one.

Parameters:
Name Type Description
other Integer

The Integer to AND with this.

Returns:
Type Description
Integer

The bitwise-AND of this and the other.

compare

(Integer other)

Compares this Integer with the given one.

Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
number

0 if they are the same, 1 if the this is greater, and -1 if the given one is greater.

divide

(Integer other)

Returns this Integer divided by the given one.

Parameters:
Name Type Description
other Integer

Th Integer to divide this by.

Returns:
Type Description
Integer

This value divided by the given one.

equals

(Integer other)
Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
boolean

Whether this Integer equals the other.

Integer.fromBits

(Array<number> bits)

Returns a Integer representing the value that comes by concatenating the given entries, each is assumed to be 32 signed bits, given in little-endian order (lowest order bits in the lowest index), and sign-extending the highest order 32-bit value.

Static
This function is static
Parameters:
Name Type Description
bits Array<number>

The bits of the number, in 32-bit signed pieces, in little-endian order.

Returns:
Type Description
Integer

The corresponding Integer value.

Integer.fromBuffer

(Buffer buf)

Returns an Integer representation of a given big endian Buffer. The internal representation of bits contains bytes in groups of 4

Static
This function is static
Parameters:
Name Type Description
buf Buffer
Returns:
Type Description
Integer

Integer.fromInt

(number value)

Returns an Integer representing the given (32-bit) integer value.

Static
This function is static
Parameters:
Name Type Description
value number

A 32-bit integer value.

Returns:
Type Description
Integer

The corresponding Integer value.

Integer.fromNumber

(number value)

Returns an Integer representing the given value, provided that it is a finite number. Otherwise, zero is returned.

Static
This function is static
Parameters:
Name Type Description
value number

The value in question.

Returns:
Type Description
Integer

The corresponding Integer value.

Integer.fromString

(string str, [number opt_radix])

Returns an Integer representation of the given string, written using the given radix.

Static
This function is static
Parameters:
Name Type Description
str string

The textual representation of the Integer.

opt_radix optional number

The radix in which the text is written.

Returns:
Type Description
Integer

The corresponding Integer value.

getBits

(number index)

Returns the index-th 32-bit (signed) piece of the Integer according to little-endian order (i.e., index 0 contains the smallest bits).

Parameters:
Name Type Description
index number

The index in question.

Returns:
Type Description
number

The requested 32-bits as a signed number.

getBitsUnsigned

(number index)

Returns the index-th 32-bit piece as an unsigned number.

Parameters:
Name Type Description
index number

The index in question.

Returns:
Type Description
number

The requested 32-bits as an unsigned number.

getSign

()
Returns:
Type Description
number

The sign bit of this number, -1 or 0.

greaterThan

(Integer other)
Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
boolean

Whether this Integer is greater than the other.

greaterThanOrEqual

(Integer other)
Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
boolean

Whether this Integer is greater than or equal to the other.

inspect

()

Provide the name of the constructor and the string representation

Returns:
Type Description
string

isNegative

()
Returns:
Type Description
boolean

Whether this value is negative.

isOdd

()
Returns:
Type Description
boolean

Whether this value is odd.

isZero

()
Returns:
Type Description
boolean

Whether this value is zero.

lessThan

(Integer other)
Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
boolean

Whether this Integer is less than the other.

lessThanOrEqual

(Integer other)
Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
boolean

Whether this Integer is less than or equal to the other.

modulo

(Integer other)

Returns this Integer modulo the given one.

Parameters:
Name Type Description
other Integer

The Integer by which to mod.

Returns:
Type Description
Integer

This value modulo the given one.

multiply

(Integer other)

Returns the product of this and the given Integer.

Parameters:
Name Type Description
other Integer

The Integer to multiply against this.

Returns:
Type Description
Integer

The product of this and the other.

negate

()
Returns:
Type Description
Integer

The negation of this value.

not

()
Returns:
Type Description
Integer

The bitwise-NOT of this value.

notEquals

(Integer other)
Parameters:
Name Type Description
other Integer

Integer to compare against.

Returns:
Type Description
boolean

Whether this Integer does not equal the other.

or

(Integer other)

Returns the bitwise-OR of this Integer and the given one.

Parameters:
Name Type Description
other Integer

The Integer to OR with this.

Returns:
Type Description
Integer

The bitwise-OR of this and the other.

shiftLeft

(number numBits)

Returns this value with bits shifted to the left by the given amount.

Parameters:
Name Type Description
numBits number

The number of bits by which to shift.

Returns:
Type Description
Integer

This shifted to the left by the given amount.

shiftRight

(number numBits)

Returns this value with bits shifted to the right by the given amount.

Parameters:
Name Type Description
numBits number

The number of bits by which to shift.

Returns:
Type Description
Integer

This shifted to the right by the given amount.

shorten

(number numBits)

Returns an integer with only the first numBits bits of this value, sign extended from the final bit.

Parameters:
Name Type Description
numBits number

The number of bits by which to shift.

Returns:
Type Description
Integer

The shorted integer value.

subtract

(Integer other)

Returns the difference of this and the given Integer.

Parameters:
Name Type Description
other Integer

The Integer to subtract from this.

Returns:
Type Description
Integer

The Integer result.

Integer.toBuffer

(Integer value)

Returns a big endian buffer representation of an Integer. Internally the bits are represented using 4 bytes groups (numbers), in the Buffer representation there might be the case where we need less than the 4 bytes. For example: 0x00000001 -> ‘01’, 0xFFFFFFFF -> ‘FF’, 0xFFFFFF01 -> ‘FF01’

Static
This function is static
Parameters:
Name Type Description
value Integer
Returns:
Type Description
Buffer

toInt

()

Returns the value, assuming it is a 32-bit integer.

Returns:
Type Description
number

The corresponding int value.

toJSON

()

Returns the string representation. Method used by the native JSON.stringify() to serialize this instance.

toNumber

()
Returns:
Type Description
number

The closest floating-point representation to this value.

toString

([number opt_radix])
Parameters:
Name Type Description
opt_radix optional number

The radix in which the text should be written.

Returns:
Type Description
string

The textual representation of this value.

xor

(Integer other)

Returns the bitwise-XOR of this Integer and the given one.

Parameters:
Name Type Description
other Integer

The Integer to XOR with this.

Returns:
Type Description
Integer

The bitwise-XOR of this and the other.