## Constructor

#### new Integer(bits, 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. |

### Members

#### (static, non-null) ONE :Integer

##### Type:

- Integer

#### (static, non-null) ZERO :Integer

##### Type:

- Integer

### Methods

#### (static) fromBits(bits) → (non-null) {Integer}

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.

##### Parameters:

Name | Type | Description |
---|---|---|

`bits` |
Array.<number> | The bits of the number, in 32-bit signed pieces, in little-endian order. |

##### Returns:

The corresponding Integer value.

- Type
- Integer

#### (static) fromBuffer(buf) → {Integer}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`buf` |
Buffer |

##### Returns:

- Type
- Integer

#### (static) fromInt(value) → (non-null) {Integer}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`value` |
number | A 32-bit integer value. |

##### Returns:

The corresponding Integer value.

- Type
- Integer

#### (static) fromNumber(value) → (non-null) {Integer}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`value` |
number | The value in question. |

##### Returns:

The corresponding Integer value.

- Type
- Integer

#### (static) fromString(str, opt_radixopt) → (non-null) {Integer}

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

##### Parameters:

Name | Type | Attributes | Description |
---|---|---|---|

`str` |
string | The textual representation of the Integer. | |

`opt_radix` |
number |
<optional> |
The radix in which the text is written. |

##### Returns:

The corresponding Integer value.

- Type
- Integer

#### (static) toBuffer(value) → {Buffer}

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'

##### Parameters:

Name | Type | Description |
---|---|---|

`value` |
Integer |

##### Returns:

- Type
- Buffer

#### abs() → {Integer}

Returns a Integer whose value is the absolute value of this

##### Returns:

- Type
- Integer

#### add(other) → (non-null) {Integer}

Returns the sum of this and the given Integer.

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer to add to this. |

##### Returns:

The Integer result.

- Type
- Integer

#### and(other) → (non-null) {Integer}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer to AND with this. |

##### Returns:

The bitwise-AND of this and the other.

- Type
- Integer

#### compare(other) → {number}

Compares this Integer with the given one.

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

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

- Type
- number

#### divide(other) → (non-null) {Integer}

Returns this Integer divided by the given one.

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Th Integer to divide this by. |

##### Returns:

This value divided by the given one.

- Type
- Integer

#### equals(other) → {boolean}

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

Whether this Integer equals the other.

- Type
- boolean

#### getBits(index) → {number}

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:

The requested 32-bits as a signed number.

- Type
- number

#### getBitsUnsigned(index) → {number}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`index` |
number | The index in question. |

##### Returns:

The requested 32-bits as an unsigned number.

- Type
- number

#### getSign() → {number}

##### Returns:

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

- Type
- number

#### greaterThan(other) → {boolean}

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

Whether this Integer is greater than the other.

- Type
- boolean

#### greaterThanOrEqual(other) → {boolean}

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

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

- Type
- boolean

#### inspect() → {string}

Provide the name of the constructor and the string representation

##### Returns:

- Type
- string

#### isNegative() → {boolean}

##### Returns:

Whether this value is negative.

- Type
- boolean

#### isOdd() → {boolean}

##### Returns:

Whether this value is odd.

- Type
- boolean

#### isZero() → {boolean}

##### Returns:

Whether this value is zero.

- Type
- boolean

#### lessThan(other) → {boolean}

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

Whether this Integer is less than the other.

- Type
- boolean

#### lessThanOrEqual(other) → {boolean}

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

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

- Type
- boolean

#### modulo(other) → (non-null) {Integer}

Returns this Integer modulo the given one.

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer by which to mod. |

##### Returns:

This value modulo the given one.

- Type
- Integer

#### multiply(other) → (non-null) {Integer}

Returns the product of this and the given Integer.

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer to multiply against this. |

##### Returns:

The product of this and the other.

- Type
- Integer

#### negate() → (non-null) {Integer}

##### Returns:

The negation of this value.

- Type
- Integer

#### not() → (non-null) {Integer}

##### Returns:

The bitwise-NOT of this value.

- Type
- Integer

#### notEquals(other) → {boolean}

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | Integer to compare against. |

##### Returns:

Whether this Integer does not equal the other.

- Type
- boolean

#### or(other) → (non-null) {Integer}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer to OR with this. |

##### Returns:

The bitwise-OR of this and the other.

- Type
- Integer

#### shiftLeft(numBits) → (non-null) {Integer}

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:

This shifted to the left by the given amount.

- Type
- Integer

#### shiftRight(numBits) → (non-null) {Integer}

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:

This shifted to the right by the given amount.

- Type
- Integer

#### shorten(numBits) → (non-null) {Integer}

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:

The shorted integer value.

- Type
- Integer

#### subtract(other) → (non-null) {Integer}

Returns the difference of this and the given Integer.

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer to subtract from this. |

##### Returns:

The Integer result.

- Type
- Integer

#### toInt() → {number}

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

##### Returns:

The corresponding int value.

- Type
- number

#### toJSON()

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

#### toNumber() → {number}

##### Returns:

The closest floating-point representation to this value.

- Type
- number

#### toString(opt_radixopt) → {string}

##### Parameters:

Name | Type | Attributes | Description |
---|---|---|---|

`opt_radix` |
number |
<optional> |
The radix in which the text should be written. |

##### Returns:

The textual representation of this value.

- Type
- string

#### xor(other) → (non-null) {Integer}

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

##### Parameters:

Name | Type | Description |
---|---|---|

`other` |
Integer | The Integer to XOR with this. |

##### Returns:

The bitwise-XOR of this and the other.

- Type
- Integer