## 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`

(`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.