跳到内容

🔢 进制转换器

即时转换二进制 / 八进制 / 十进制 / 十六进制。支持 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 之和。因此 755111 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 后调整 LS 要直接得多。可用颜色码转换在 HEX、RGB、HSL 之间转换。

十六进制之所以被广泛使用,是因为一位恰好对应 4 个比特。一个字节必然是两位,于是内存内容、颜色、字符编码的位数都能对齐。八进制之所以留在 Unix 权限中也是同理:按 3 比特分组,read / write / execute 三者恰好占一位。反之十进制不是 2 的幂,与按位讨论天然不合,边界值也永远不会是整数。

📖 使用方法

  1. 1
    在任意字段输入数字
    在任意 DEC、HEX、BIN 或 OCT 字段输入数字。支持 0x、0b、0o 前缀。
  2. 2
    即时查看其他进制结果
    其他三种进制表示在输入时自动更新。
  3. 3
    查看位表示
    底部位表示面板显示 8/16/32 位有符号和无符号补码表示。

❓ 常见问题

可以输入负数吗?
可以在十进制字段输入负数。位表示面板显示补码表示。
能处理非常大的数吗?
是的,本工具使用 JavaScript BigInt,可处理任意精度整数。
可以使用逗号或下划线分隔符吗?
是的。逗号、下划线和空格会被自动去除。
🐛 此工具出现问题了吗?

免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。

※ 为复现问题,浏览器信息 (UA / 屏幕 / 语言 / URL) 将自动发送