dart:core
BigInt class
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)
factory
- Creates a big integer from the provided
value number.
Properties
- bitLength → int
read-only
- Returns the minimum number of bits required to store this big integer.
- hashCode → int
read-only, inherited
- The hash code for this object.
- isEven → bool
read-only
- Whether this big integer is even.
- isNegative → bool
read-only
- Whether this number is negative.
- isOdd → bool
read-only
- Whether this big integer is odd.
- isValidInt → bool
read-only
- Whether this big integer can be represented as an
int without losing precision. - runtimeType → Type
read-only, inherited
- A representation of the runtime type of the object.
- sign → int
read-only
- Returns the sign of this big integer.
Methods
- abs() → BigInt
- Returns the absolute value of this integer.
- compareTo(BigInt other) → int
override
- Compares this to
other. - 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
exponent modulo modulus. - noSuchMethod(Invocation invocation) → dynamic
inherited
- Invoked when a non-existent method or property is accessed.
- pow(int exponent) → BigInt
- Returns
this to the power of exponent. - remainder(BigInt other) → BigInt
- Returns the remainder of the truncating division of
this by other. - toDouble() → double
- Returns this BigInt as a double.
- toInt() → int
- Returns this BigInt as an int.
- toRadixString(int radix) → String
- Converts this to a string representation in the given
radix. - toSigned(int width) → BigInt
- Returns the least significant
width bits of this integer, extending the highest retained bit to the sign. This is the same as truncating the value to fit in width bits using an signed 2-s complement representation. The returned value has the same bit value in all positions higher than width. - toString() → String
override
- Returns a String-representation of this integer.
- toUnsigned(int width) → BigInt
- Returns the least significant
width bits of this big integer as a non-negative number (i.e. unsigned representation). The returned value has zeros in all bit positions higher than width.
Operators
- operator %(BigInt other) → BigInt
- Euclidean modulo operator.
- operator &(BigInt other) → BigInt
- Bit-wise and operator.
- operator *(BigInt other) → BigInt
- Multiplies
other by this big integer. - operator +(BigInt other) → BigInt
- Adds
other to this big integer. - operator -(BigInt other) → BigInt
- Subtracts
other from 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
other is numerically greater than this big integer. - operator ==(Object other) → bool
inherited
- The equality operator.
- operator >(BigInt other) → bool
- Whether this big integer is numerically greater than
other. - operator >=(BigInt other) → bool
- Whether
other is 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.
Static Properties
- one → BigInt
read-only
- A big integer with the numerical value 1.
- two → BigInt
read-only
- A big integer with the numerical value 2.
- zero → BigInt
read-only
- A big integer with the numerical value 0.
Static Methods
- parse(String source, {int? radix}) → BigInt
- Parses
source as a, possibly signed, integer literal and returns its value. - tryParse(String source, {int? radix}) → BigInt?
- Parses
source as a, possibly signed, integer literal and returns its value.