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 数值创建一个大整数。
工厂

属性

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

方法

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

静态属性

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

静态方法

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