进制转换器

2 到 36 任意进制互转。使用 BigInt 精确计算,超过 2⁵³ 的大整数也不会丢精度。

它如何工作

解析时逐字符查表得到该位的数值,累加 result = result × 进制 + 位值。全程使用 BigInt,因此 64 位甚至几百位的整数都能精确转换——用普通 JavaScript 数字,超过 2⁵³−1 就会静默丢精度,这是解析 ID、哈希、时间戳时最隐蔽的 bug 来源。

输出时反复取余与整除,再把余数映射回字符。负数会保留符号,小数与科学计数法不支持(进制转换本身只对整数有明确定义)。

常用参考值

含义十进制十六进制二进制
1 字节最大值255FF11111111
2 字节最大值65535FFFF1111111111111111
4 字节最大值4294967295FFFFFFFF32 个 1
2⁵³ − 1(JS 安全整数上限)90071992547409911FFFFFFFFFFFFF53 个 1
2⁶⁴ − 118446744073709551615FFFFFFFFFFFFFFFF64 个 1

用二进制/十六进制表示网络掩码、权限位、颜色通道、哈希前缀时,本工具会同时给出分组形式,便于肉眼核对位数。

常见问题

为什么输入超过 16 位数字时结果不对?

这是 JavaScript 数字精度的限制(安全整数上限约 9×10¹⁵)。本工具用 BigInt 规避了这个问题,但请确保输入时不要包含小数点或指数记号,否则工具会拒绝并提示。

支持负数吗?

支持,会保留负号。但进制转换中的「补码」是另一种语义——如果你需要的是 32 位补码表示,请先用本工具算出无符号值,再自行按位数取反加一。

结果如何复制?

点击结果表格里的任意一行即可复制该行的值,适合直接粘进代码或配置里。