An arbitrarily large integer value.
Big integers are signed and can have an arbitrary number of significant digits, only limited by memory.
To create a big integer from the provided number, use BigInt.from.
var bigInteger = BigInt.from(-1); // -1
bigInteger = BigInt.from(0.9999); // 0
bigInteger = BigInt.from(-10.99); // -10
bigInteger = BigInt.from(0x7FFFFFFFFFFFFFFF); // 9223372036854775807
bigInteger = BigInt.from(1e+30); // 1000000000000000019884624838656
To parse a large integer value from a string, use parse or tryParse.
var value = BigInt.parse('0x1ffffffffffffffff'); // 36893488147419103231
value = BigInt.parse('12345678901234567890'); // 12345678901234567890
To check whether a big integer can be represented as an int without losing precision, use isValidInt.
print(bigNumber.isValidInt); // false
To convert a big integer into an int, use toInt. To convert a big integer into an double, use toDouble.
var bigValue = BigInt.from(10).pow(3);
print(bigValue.isValidInt); // true
print(bigValue.toInt()); // 1000
print(bigValue.toDouble()); // 1000.0
See also:
- Implemented types
Constructors
- BigInt.from(num value)
-
Creates a big integer from the provided
valuenumber.factory
Properties
- bitLength → int
-
Returns the minimum number of bits required to store this big integer.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- isEven → bool
-
Whether this big integer is even.
no setter
- isNegative → bool
-
Whether this number is negative.
no setter
- isOdd → bool
-
Whether this big integer is odd.
no setter
- isValidInt → bool
-
Whether this big integer can be represented as an
intwithout losing precision.no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sign → int
-
Returns the sign of this big integer.
no setter
Methods
-
abs(
) → BigInt - Returns the absolute value of this integer.
-
compareTo(
BigInt other) → int -
Compares this to
other.override -
gcd(
BigInt other) → BigInt -
Returns the greatest common divisor of this big integer and
other. -
modInverse(
BigInt modulus) → BigInt -
Returns the modular multiplicative inverse of this big integer
modulo
modulus. -
modPow(
BigInt exponent, BigInt modulus) → BigInt -
Returns this integer to the power of
exponentmodulomodulus. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
pow(
int exponent) → BigInt -
Returns
thisto the power ofexponent. -
remainder(
BigInt other) → BigInt -
Returns the remainder of the truncating division of
thisbyother. -
toDouble(
) → double - Returns this BigInt as a double.
-
toInt(
) → int - Returns this BigInt as an int.
-
toRadixString(
int radix) → String -
Converts this BigInt to a string representation in the given
radix. -
toSigned(
int width) → BigInt -
Returns the least significant
widthbits of this integer, extending the highest retained bit to the sign. This is the same as truncating the value to fit inwidthbits using an signed 2-s complement representation. The returned value has the same bit value in all positions higher thanwidth. -
toString(
) → String -
Returns a String-representation of this integer.
override
-
toUnsigned(
int width) → BigInt -
Returns the least significant
widthbits of this big integer as a non-negative number (i.e. unsigned representation). The returned value has zeros in all bit positions higher thanwidth.
Operators
-
operator %(
BigInt other) → BigInt - Euclidean modulo operator.
-
operator &(
BigInt other) → BigInt - Bit-wise and operator.
-
operator *(
BigInt other) → BigInt -
Multiplies
otherby this big integer. -
operator +(
BigInt other) → BigInt -
Adds
otherto this big integer. -
operator -(
BigInt other) → BigInt -
Subtracts
otherfrom this big integer. -
operator /(
BigInt other) → double - Double division operator.
-
operator <(
BigInt other) → bool -
Whether this big integer is numerically smaller than
other. -
operator <<(
int shiftAmount) → BigInt -
Shift the bits of this integer to the left by
shiftAmount. -
operator <=(
BigInt other) → bool -
Whether
otheris numerically greater than this big integer. -
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator >(
BigInt other) → bool -
Whether this big integer is numerically greater than
other. -
operator >=(
BigInt other) → bool -
Whether
otheris numerically smaller than this big integer. -
operator >>(
int shiftAmount) → BigInt -
Shift the bits of this integer to the right by
shiftAmount. -
operator ^(
BigInt other) → BigInt - Bit-wise exclusive-or operator.
-
operator unary-(
) → BigInt - Return the negative value of this integer.
-
operator |(
BigInt other) → BigInt - Bit-wise or operator.
-
operator ~(
) → BigInt - The bit-wise negate operator.
-
operator ~/(
BigInt other) → BigInt - Truncating integer division operator.