{ }
EN

进制转换

在任一进制中输入数字,立即看到其它三种进制的结果。

二进制(2)11111111
八进制(8)377
十进制(10)255
十六进制(16)ff

为什么要在意进制

计算机以位存数,但人类几乎不会直接读位。十六进制把 4 位压缩为 1 个字符,让内存 dump、MAC 地址、颜色值、文件头都更易扫读。八进制每字符 3 位,仍活跃在 Unix 文件权限里。二进制是最贴近机器的表示,做位运算时绕不开。

本工具允许你在任一进制中输入,立即看到其它三种进制的结果。识别 JavaScript 经典前缀:0b 表示二进制、0o 表示八进制、0x 表示十六进制,否则按十进制处理。如果出现歧义(例如 100 既可能是 4、64、100,也可能是 256),可以通过下拉框强制指定进制。

使用场景

  • 把颜色 HEX 拆成 RGB 各通道的位值看。
  • 在八进制(0755)与二进制 rwxrwxrwx 之间翻译 Unix 文件权限。
  • 把调试器里复制的内存地址转成十进制。
  • 把端口号或魔数编成十六进制写进二进制文件格式。
  • 把 Base64 字母表的下标还原为 6 位二进制片段。

最佳实践

  • 代码里的 hex 字面量加上 0x 前缀,避免读者误判进制。
  • 长二进制按 4 位(半字节)分组,更易读。
  • JavaScript 位运算会强转为 32 位有符号整数,大 hex 值结果可能出乎意料。
  • 跨进制处理负数前先约定使用符号-数值还是补码(取决于位宽)。

常见问题

支持的最大数值是多少?
JavaScript 安全整数范围:2^53 - 1。超出后可能丢精度。
如何处理负数?
十进制接受前导负号;其它进制以负号 + 绝对值的形式显示,而不是补码 —— 补码取决于具体位宽。
前导零会保留吗?
默认去掉前导零,只在需要保留进制前缀或为了对齐二进制半字节时保留。
Hex 大小写敏感吗?
输入接受 0xFF 与 0xff。输出默认小写以贴近现代惯例。