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.