parse 静态方法

BigInt parse(
  1. String source,
  2. {int? radix}
)

source 解析为一个可能的带符号整数字面量,并返回其值。

source 必须是一个非空序列的基数-radix数字,可带有一个前导的正号或负号('-'或'+)。

radix 必须在范围 2..36 之间。使用的数字首先是最用的十进制数字 0..9,然后是字母 'a'..'z'(值 10 至 35)。也接受与小写字母相同值的上标字母。

如果没有提供 radix,则默认为 10。在这种情况下,source 中的数字还可以以 0x 开头,在这种情况下,数字被解释为十六进制字面量,这意味着 0x 被忽略,基数更改为 16。

对于任何整数 n 和基数 r,都有一个保证 n == int.parse(n.toRadixString(r), radix: r)

如果 source 不是一个有效的整数字面量(可选带有符号前缀),则抛出 FormatException。示例

print(BigInt.parse('-12345678901234567890')); // -12345678901234567890
print(BigInt.parse('0xFF')); // 255
print(BigInt.parse('0xffffffffffffffff')); // 18446744073709551615

// From binary (base 2) value.
print(BigInt.parse('1100', radix: 2)); // 12
print(BigInt.parse('00011111', radix: 2)); // 31
print(BigInt.parse('011111100101', radix: 2)); // 2021
// From octal (base 8) value.
print(BigInt.parse('14', radix: 8)); // 12
print(BigInt.parse('37', radix: 8)); // 31
print(BigInt.parse('3745', radix: 8)); // 2021
// From hexadecimal (base 16) value.
print(BigInt.parse('c', radix: 16)); // 12
print(BigInt.parse('1f', radix: 16)); // 31
print(BigInt.parse('7e5', radix: 16)); // 2021
// From base 35 value.
print(BigInt.parse('y1', radix: 35)); // 1191 == 34 * 35 + 1
print(BigInt.parse('z1', radix: 35)); // Throws.
// From base 36 value.
print(BigInt.parse('y1', radix: 36)); // 1225 == 34 * 36 + 1
print(BigInt.parse('z1', radix: 36)); // 1261 == 35 * 36 + 1

实现

external static BigInt parse(String source, {int? radix});