首页 › 开发工具 › 进制转换工具

进制转换工具

在二进制、八进制、十进制、十六进制之间任意转换整数值,基于 BigInt 计算可处理上百位的超大整数,同时输出四种进制的表示、每 4 位一组的二进制分组对照与位宽,负数与 0x/0b/0o 前缀均可识别。

输入数的进制

数据来源:ECMA-367 BigInt 与 RFC 类位置计数法(基数 2/8/10/16)

二进制(base 2)1111111111111111111111111111111111111111
八进制(base 8)0o17777777777777
十进制(base 10)1099511627775
十六进制(base 16)0xFFFFFFFFFF
二进制位宽40位
分组数量10组(每4位)
是否超出安全整数否(Number 可精确表示)

二进制按 4 位分组对照(1 组 = 1 个十六进制位)

组序4位二进制对应十六进制权重位置
1 / 101111F2^36 起
2 / 101111F2^32 起
3 / 101111F2^28 起
4 / 101111F2^24 起
5 / 101111F2^20 起
6 / 101111F2^16 起
7 / 101111F2^12 起
8 / 101111F2^8 起
9 / 101111F2^4 起
10 / 101111F2^0 起
输入:1099511627775(按十进制(0-9)解析)
BIN  1111111111111111111111111111111111111111
OCT  0o17777777777777
DEC  1099511627775
HEX  0xFFFFFFFFFF

转换基于 BigInt,位数不受双精度浮点限制(超过 2^53 的十进制整数用 Number 会丢精度,本工具已单独提示)。输入时 0x、0b、0o 前缀可省略,工具会按你选的进制解析,若填了前缀则以前缀为准;负号支持任意进制,输出中负数保留在最前面。每 4 位二进制恰好对应 1 位十六进制,因此查表法手算时可从分组表直接读出 HEX。

本页所有计算在浏览器内完成,输入内容不会被上传。

计算口径

位置计数法下,输入串按「累乘基数再加下一位」的方式先转成整数(本工具直接调用 BigInt 的按进制解析),再由该整数对目标基数取余输出字符串。二进制每 4 位一组恰好是 0—15,对应一个十六进制数字;每 3 位一组对应一个八进制数字。BigInt 的 toString(2/8/16) 输出的负数形式为 -1010、-ff 等,负号在进制之前。

使用说明

  • 从报错日志里复制 0x 地址或掩码时,直接粘贴并选十六进制
  • 做子网掩码、颜色位域拆解时对照分组表的 4 位二进制与十六进制
  • 需要无符号 32 位值时先算十进制,再用 4294967296 取模

常见问题

为什么 JS 里 9007199254740993 变成 …992?

因为 JS 的 Number 是双精度浮点,只能精确表示 2^53−1(9007199254740991)以内的整数,超出的奇数会被舍入。本工具用 BigInt 计算,因此上百位也能精确转换;结果里的提示行会告诉你该值是否已超出安全范围。

十六进制的字母要大写还是小写?

数值上等价。约定:内存地址、MAC 地址、颜色值多用小写(如 #4a7cf0),而协议文档与校验码常用大写(如 FF)。本工具 HEX 输出统一大写,便于与十进制区分。

能转小数吗?

不能。小数部分的进制转换是乘 2 取整的无限过程(如 0.1 在二进制里是循环),结果不唯一且有精度问题,本工具只处理整数;若输入含小数点会被判为非法字符。