🔢 进制转换器
即时转换二进制 / 八进制 / 十进制 / 十六进制。支持 0x / 0b / 0o 前缀,位宽和有符号补码。
完全免费
无需注册
浏览器内完成
5 种语言
深色模式
位表示
8-bit signed
8-bit unsigned
16-bit signed
16-bit unsigned
32-bit signed
32-bit unsigned
📖 常见的坑
在 2 / 8 / 10 / 16 进制之间互转,自动识别 0x / 0b / 0o 前缀。实务中需要进制转换的场景,多半是权限、位标志、颜色码、字符编码之一,而各自「位」的含义并不相同。即便数值转换正确,若解释错了,结果依然无法使用。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| 把权限 755 当成十进制 | chmod 755 中的 755 是八进制,与十进制的 755(八进制为 1363)完全不同。三位分别对应所有者、组、其他,每一位是 read=4 / write=2 / execute=1 之和。因此 755 即 111 101 101:所有者拥有全部权限,其余仅有读与执行。 |
输入时写成 0o755 即按八进制解析。代码中也有同样的坑:Python 的 os.chmod(path, 755) 传入的是十进制 755,得到的权限与意图完全不同。请务必写 0o755。 |
| 负数或位运算结果对不上 | 计算机以二进制补码表示负数。-1 在 8 位下是 11111111(0xFF),在 32 位下是 0xFFFFFFFF,表示形式完全取决于你以多少位来看。普通的进制转换会写成「负号 + 绝对值」,因此与内存转储或寄存器的值永远对不上。 |
请先确定位宽。不明确是按 8 / 16 / 32 / 64 位来看,正确答案本就不唯一。此外 JavaScript 的位运算全部截断为 32 位有符号整数,因此 1 << 31 得到的是 -2147483648,而非正的 2147483648。需要 64 位时请使用 BigInt。 |
| 把十六进制颜色码当数字相加 | #FF8800 不是一个数值,而是 R / G / B 三个独立的字节。若把它当作十进制 16746496 并做加法来提亮,进位会溢出到相邻通道,从而改变色相——本想加绿色,溢出却落在了红色上。 |
请拆成通道分别计算,各自钳制在 0~255 后再合并。若只是想调亮或调饱和,转成 HSL 后调整 L 或 S 要直接得多。可用颜色码转换在 HEX、RGB、HSL 之间转换。 |
十六进制之所以被广泛使用,是因为一位恰好对应 4 个比特。一个字节必然是两位,于是内存内容、颜色、字符编码的位数都能对齐。八进制之所以留在 Unix 权限中也是同理:按 3 比特分组,read / write / execute 三者恰好占一位。反之十进制不是 2 的幂,与按位讨论天然不合,边界值也永远不会是整数。
📖 使用方法
-
1
在任意字段输入数字在任意 DEC、HEX、BIN 或 OCT 字段输入数字。支持 0x、0b、0o 前缀。
-
2
即时查看其他进制结果其他三种进制表示在输入时自动更新。
-
3
查看位表示底部位表示面板显示 8/16/32 位有符号和无符号补码表示。
❓ 常见问题
可以输入负数吗?
可以在十进制字段输入负数。位表示面板显示补码表示。
能处理非常大的数吗?
是的,本工具使用 JavaScript BigInt,可处理任意精度整数。
可以使用逗号或下划线分隔符吗?
是的。逗号、下划线和空格会被自动去除。
🐛 此工具出现问题了吗?
免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。
✅
感谢您的反馈!
已送达运营者,将用于改进工具。