BigInteger通过构造器BigInteger(String val, int radix)支持2–36进制字符串转十进制大整数,再通过toString(int radix)将十进制BigInteger转为指定进制小写字符串,天然支持负数,超出36进制需手动实现。
BigInteger 本身不直接提供像 toString(radix) 这样的实例方法(那是 Integer、Long 等基本类型包装类的),但它提供了静态方法 BigInteger.valueOf(long) 和构造器支持字符串解析,更重要的是——它有一个非常关键的构造器和一个配套的 toString() 方法,能直接完成任意进制(2–36)的转换。
这是“其他进制 → 十进制 BigInteger”的入口。比如把 36 进制字符串 "Z" 或 "100" 转成十进制大整数:
new BigInteger("Z", 36) → 值为 35(因为 Z 是 36 进制中表示 35)new BigInteger("100", 36) → 值为 36² = 1296
NumberFormatException
这是“十进制 BigInteger → 其他进制字符串”的核心方法。它返回小写字母 a–z 表示 10–35,符合标准惯例:
BigInteger.valueOf(1296).toString(36) → 返回 "100"
BigInteger.valueOf(35).toString(36) → 返回 "z"
.toUpperCase()
BigInteger 的进制转换天然支持负数:
立即学习“Java免费学习笔记(深入)”;
new BigInteger("-abc", 16) 合法,解析为负的十进制值BigInteger.valueOf(-1000).toString(36) 返回 "-rs"(小写带负号)Java 内置仅支持 2–36(因字母只有 26 个 + 数字 10 个)。若需 62 进制(0–9 + a–z + A–Z),就得自己写转换逻辑:
divideAndRemainder() 反复取余,查表映射余数到字符