一个任意大的整数值。
大整数是有符号的,可以有任何数量的有效数字,只受内存限制。
要从提供的数字创建一个大的整数,请使用 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
从字符串中解析一个大的整数值,请使用 parse 或 tryParse。
var value = BigInt.parse('0x1ffffffffffffffff'); // 36893488147419103231
value = BigInt.parse('12345678901234567890'); // 12345678901234567890
要检查一个大的整数是否可以作为一个无精度损失的 int 来表示,请使用 isValidInt。
print(bigNumber.isValidInt); // false
将大整数转换为 int,请使用 toInt。要将大整数转换为 double,请使用 toDouble。
var bigValue = BigInt.from(10).pow(3);
print(bigValue.isValidInt); // true
print(bigValue.toInt()); // 1000
print(bigValue.toDouble()); // 1000.0
也请参见
- 实现类型
构造函数
- BigInt.from(num value)
- 从提供的
value
数字创建一个大的整数。factory
属性
方法
-
abs(
) → BigInt - 返回此整数的绝对值。
-
compareTo(
BigInt other) → int - 将此与
other
比较。覆盖 -
gcd(
BigInt other) → BigInt - 返回这个大整数与
other
的最大公约数。 -
modInverse(
BigInt modulus) → BigInt - 返回这个大整数在模
modulus
下的模逆。 -
modPow(
BigInt exponent, BigInt modulus) → BigInt - 返回这个整数在模
modulus
下的exponent
次幂。 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被调用。继承
-
pow(
int exponent) → BigInt - 返回
this
的exponent
次幂。 -
remainder(
BigInt other) → BigInt - 返回
this
除以other
的截断除法的余数。 -
toDouble(
) → double - 将这个 BigInt 转换为 double。
-
toInt(
) → int - 将这个 BigInt 转换为 int。
-
toRadixString(
int radix) → String - 将 this 转换为指定
radix
的字符串表示形式。 -
toSigned(
int width) → BigInt - 返回这个整数的最低
width
位,将最高的保留位扩展到符号位。这与使用二进补码表示在width
位中截断值相同。返回值在所有高于width
的位置上都具有相同的位值。 -
toString(
) → String - 返回这个整数的字符串表示形式。覆盖
-
toUnsigned(
int width) → BigInt - 返回此大整数的最低有效
width
位作为一个非负数(即无符号表示)。返回值在所有高于width
的位位置都是零。
运算符
-
运算符%(
BigInt other) → BigInt - 欧几里得模运算符。
-
运算符&(
BigInt other) → BigInt - 位与运算符。
-
运算符*(
BigInt other) → BigInt - 将
other
乘以这个大整数。 -
运算符+(
BigInt other) → BigInt - 将
other
加到这个大整数上。 -
运算符-(
BigInt other) → BigInt - 从这个大整数减去
other
。 -
运算符/(
BigInt other) → double - 双重除法运算符。
-
运算符<(
BigInt other) → bool - 这个大整数是否在数值上小于
other
。 -
运算符<<(
int shiftAmount) → BigInt - 将这个整数的位向左移动
shiftAmount
。 -
运算符<=(
BigInt other) → bool other
是否在数值上大于这个大整数。-
运算符==(
Object other) → bool - 等号运算符。继承
-
运算符>(
BigInt other) → bool - 这个大整数是否在数值上大于
other
。 -
运算符>=(
BigInt other) → bool other
是否在数值上小于这个大整数。-
operator >>(
int shiftAmount) → BigInt - 将此整数的位向右移位
shiftAmount
。 -
operator ^(
BigInt other) → BigInt - 位异或运算符。
-
operator unary-(
) → BigInt - 返回此整数的负值。
-
operator |(
BigInt other) → BigInt - 位或运算符。
-
operator ~(
) → BigInt - 位求反运算符。
-
operator ~/(
BigInt other) → BigInt - 截断整数除法运算符。