BigInteger.toString(radix)将大整数转为2~36进制字符串,负数带“-”号,字母固定小写;超出范围抛NumberFormatException,不支持补码或自定义字符集。

BigInteger.toString(radix) 方法直接将大整数转换为指定进制(radix)的字符串表示,无需额外处理,但需注意进制范围和符号规则。
支持的进制范围是 2 到 36
radix 必须在 2~36 之间(含),超出会抛出 NumberFormatException。这是因为 BigInteger 内部用 ASCII 字符 '0'–'9' 和 'a'–'z' 表示数码,最多支持 36 个不同字符:
- radix = 2 → 二进制,只含 '0', '1'
- radix = 16 → 十六进制,含 '0'–'9', 'a'–'f'
- radix = 36 → 最大进制,用满 '0'–'9' + 'a'–'z'
负数自动带负号,不使用补码
转换结果保留原数值的符号:负数会在字符串开头加 '-',后面是绝对值的对应进制表示。它不是按该进制的补码或二进制位模式转换,而是数学意义上的进制表示:
-
new BigInteger("-15").toString(2)→"-1111" -
new BigInteger("-10").toString(16)→"-a" - 不会出现类似 "ffff" 这样的补码形式
常用进制示例与写法
直接传入整型 radix 值即可,常见写法如下:
立即学习“Java免费学习笔记(深入)”;
- 二进制:
bigInt.toString(2) - 八进制:
bigInt.toString(8) - 十进制:
bigInt.toString(10)(等价于无参 toString()) - 十六进制:
bigInt.toString(16) - 三十二进制(如用作紧凑编码):
bigInt.toString(32)
不能转成自定义字符集(如大写 A-F)
toString(radix) 固定使用小写字母 a–z 表示 10–35,不提供大小写开关。如需大写十六进制,可链式调用 toUpperCase():
-
bigInt.toString(16).toUpperCase()→ 得到 "ABC123" - 但注意:这仅影响字母显示,不改变数值含义


















