任意大的整数值。
大整数是有符号的,可以具有任意数量的有效数字,仅受内存限制。
要从提供的数字创建一个大整数,请使用 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
数值创建一个大整数。工厂
属性
方法
-
abs(
) → BigInt - 返回该整数的绝对值。
-
compareTo(
BigInt other) → int - 比较此数与
other
。override -
gcd(
BigInt other) → BigInt - 返回此大整数和
other
的最大公约数。 -
modInverse(
BigInt modulus) → BigInt - 返回此大整数对
modulus
的模乘法逆元。 -
modPow(
BigInt exponent, BigInt modulus) → BigInt - 返回此整数对
exponent
的幂模modulus
。 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被调用。inherited
-
pow(
int exponent) → BigInt - 返回
this
的exponent
次幂。 -
remainder(
BigInt other) → BigInt - 返回
this
除以other
的截断除法的余数。 -
toDouble(
) → double - 将此 BigInt 作为 double 返回。
-
toInt(
) → int - 将此 BigInt 作为 int 返回。
-
toRadixString(
int radix) → String - 将此 BigInt 转换为给定
radix
的字符串表示。 -
toSigned(
int width) → BigInt - 返回这个整数的最低有效
width
位,并将最高保留位扩展为符号。这相当于使用有符号的2的补码表示法截断值以适应width
位。返回值在所有高于width
的位置上具有相同的位值。 -
toString(
) → String - 返回这个整数的字符串表示形式。override
-
toUnsigned(
int width) → BigInt - 返回这个大整数的最低有效
width
位作为非负数(即无符号表示)。返回值在所有高于width
的位位置上都是零。
运算符
-
operator %(
BigInt other) → BigInt - 欧几里得模运算符。
-
operator &(
BigInt other) → BigInt - 位与运算符。
-
operator *(
BigInt other) → BigInt - 将
other
乘以这个大整数。 -
operator +(
BigInt other) → BigInt - 将
other
加到这个大整数上。 -
operator -(
BigInt other) → BigInt - 从这个大整数中减去
other
。 -
operator /(
BigInt other) → double - 双除运算符。
-
operator <(
BigInt other) → bool - 这个大整数是否在数值上小于
other
。 -
operator <<(
int shiftAmount) → BigInt - 将这个整数的位向左移动
shiftAmount
。 -
操作符 <=(
BigInt other) → bool - 判断
other
是否在数值上大于这个大整数。 -
操作符 ==(
Object other) → bool - 等于操作符。inherited
-
操作符 >(
BigInt other) → bool - 判断这个大整数在数值上是否大于
other
。 -
操作符 >=(
BigInt other) → bool - 判断
other
在数值上是否小于这个大整数。 -
操作符 >>(
int shiftAmount) → BigInt - 将这个整数的位向右移动
shiftAmount
。 -
操作符 ^(
BigInt other) → BigInt - 位异或操作符。
-
操作符 unary-(
) → BigInt - 返回这个整数的负值。
-
操作符 |(
BigInt other) → BigInt - 位或操作符。
-
操作符 ~(
) → BigInt - 位取反操作符。
-
操作符 ~/(
BigInt other) → BigInt - 截断整数除法操作符。