On this page
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:
- int: An integer number.
- double: A double-precision floating point number.
- num: The super class for int and double.
- Numbers in A tour of the Dart language.
- Implemented types
Constructors
- BigInt.from(num value)
factory
-
Creates a big integer from the provided
valuenumber.
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
intwithout 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
exponentmodulomodulus. - noSuchMethod(
Invocation invocation) → dynamic inherited - Invoked when a non-existent method or property is accessed.
- 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 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 override - Returns a String-representation of this integer.
- 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 inherited - The equality operator.
- 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.
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
sourceas a, possibly signed, integer literal and returns its value. - tryParse(
String source, {int? radix}) → BigInt? -
Parses
sourceas a, possibly signed, integer literal and returns its value.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/BigInt-class.html