它如何工作
解析时逐字符查表得到该位的数值,累加 result = result × 进制 + 位值。全程使用 BigInt,因此 64 位甚至几百位的整数都能精确转换——用普通 JavaScript 数字,超过 2⁵³−1 就会静默丢精度,这是解析 ID、哈希、时间戳时最隐蔽的 bug 来源。
输出时反复取余与整除,再把余数映射回字符。负数会保留符号,小数与科学计数法不支持(进制转换本身只对整数有明确定义)。
常用参考值
| 含义 | 十进制 | 十六进制 | 二进制 |
|---|---|---|---|
| 1 字节最大值 | 255 | FF | 11111111 |
| 2 字节最大值 | 65535 | FFFF | 1111111111111111 |
| 4 字节最大值 | 4294967295 | FFFFFFFF | 32 个 1 |
| 2⁵³ − 1(JS 安全整数上限) | 9007199254740991 | 1FFFFFFFFFFFFF | 53 个 1 |
| 2⁶⁴ − 1 | 18446744073709551615 | FFFFFFFFFFFFFFFF | 64 个 1 |
用二进制/十六进制表示网络掩码、权限位、颜色通道、哈希前缀时,本工具会同时给出分组形式,便于肉眼核对位数。
常见问题
为什么输入超过 16 位数字时结果不对?
这是 JavaScript 数字精度的限制(安全整数上限约 9×10¹⁵)。本工具用 BigInt 规避了这个问题,但请确保输入时不要包含小数点或指数记号,否则工具会拒绝并提示。
支持负数吗?
支持,会保留负号。但进制转换中的「补码」是另一种语义——如果你需要的是 32 位补码表示,请先用本工具算出无符号值,再自行按位数取反加一。
结果如何复制?
点击结果表格里的任意一行即可复制该行的值,适合直接粘进代码或配置里。
怎么用
- 在输入框里粘贴要转换的数字,比如十进制的 255。
- 分别选好当前进制和目标进制,比如从十进制转成十六进制。
- 点转换按钮,结果立刻显示,点复制即可使用。
- 需要的话打开大小写、前缀或按位分组开关,输出格式会跟着变。
适用场景
- 程序员调试时把十进制数快速换成十六进制颜色值。
- 学生做进制练习题,批量验算二进制和八进制的结果对不对。
- 核对很长的编号或哈希值,用按位分组看清每一位。
注意事项
- 输入只接受 0 到 9 和 a 到 z,出现超出目标进制的字符会直接提示格式不对,例如十进制里不能填 a
- 负数目前只在十进制输入时完整支持,其他进制暂不接受负号,需要负数请先转成十进制再处理
- 只处理整数,带小数点的数字会被判为格式错误,不会自动截断小数部分
- 大小写选项只影响输出字母,输入时 A 和 a 都认,结果默认用小写
- 勾选带前缀输出后,按位分组会跳过开头的 0x 或 0b,复制时前缀和分组空格都会一起带走
- 结果只留在当前页面,刷新或关闭标签页就没了,工具不会把数字存到任何地方