BigInt抽象 最终

一个任意大的整数值。

大整数是有符号的,可以有任何数量的有效数字,只受内存限制。

要从提供的数字创建一个大的整数,请使用 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

从字符串中解析一个大的整数值,请使用 parsetryParse

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

属性

bitLength int
返回存储此大整数所需的最小位数。
无设置器
hashCode int
此对象的哈希码。
无设置器继承
isEven bool
此大整数是否为偶数。
无设置器
isNegative bool
此数是否为负数。
无设置器
isOdd bool
此大整数是否为奇数。
无设置器
isValidInt bool
此大整数是否可以作为一个无精度损失的 int 表示。
无设置器
runtimeType Type
对象的运行时类型表示。
无设置器继承
sign int
返回此大整数的符号。
无设置器

方法

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
返回 thisexponent 次幂。
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
截断整数除法运算符。

静态属性

one BigInt
数值为1的大整数。
无设置器
two BigInt
数值为2的大整数。
无设置器
zero BigInt
数值为0的大整数。
无设置器

静态方法

parse(String source, {int? radix}) BigInt
source 解释为一个可选的带符号的整数字面量并返回其值。
tryParse(String source, {int? radix}) BigInt?
source 解释为一个可选的带符号的整数字面量并返回其值。