进制转换
在任一进制中输入数字,立即看到其它三种进制的结果。
二进制(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。输出默认小写以贴近现代惯例。