← 云枢 AI 导航 · 工具库
进制转换:大数不能被悄悄截断
一个 20 位的十六进制 ID,塞进 int64 就会被截断,而大多数在线工具不会告诉你。这里用大整数算。
立即使用 →
English
进制转换本身很简单,坑在数值范围。Java 的 long、Go 的 int64 上限约 9.2×10¹⁸,而一个 128 位的 UUID 或哈希片段远超这个范围——用定长整数解析会静默丢高位。
这个实现用 big.Int,并且当二进制位数超过 64 时**主动给出提示**,告诉你"这个值已经超出常规整数范围"。
它会检查什么
- 2 / 8 / 10 / 16 进制互转
- 支持 0x / 0b / 0o 前缀与下划线分隔
- 大整数不截断(超过 64 位会提示)
- 十六进制按 UTF-8 还原成字符,显示码点与字节
常见问题
- 为什么我的十六进制没有还原成字符?
- 只有输入是十六进制、字节数为偶数、且解码结果是合法 UTF-8 时才会尝试还原。比如 E4B8AD 是「中」的三个字节;FF 单独一个字节不是合法 UTF-8,就不会显示字符。
- 支持负数吗?
- 暂不支持。补码表示在不同位宽下含义不同,容易造成误解,所以直接拒绝而不是猜。
- 能转 36 进制吗?
- 不能,只支持 2/8/10/16 这四种最常用的。
相关工具