进制转换器
以二进制、八进制、十进制或十六进制输入一个数字,即可同时看到四种进制的结果。转换使用任意精度整数(BigInt),因此 64 位 ID、256 位哈希之类的超大数值也能精确转换——不像基于浮点数的转换器,超过 2^53 的整数会被悄悄破坏。所有计算都在浏览器内完成,不会向服务器发送任何内容;输入会保存在本地,刷新页面后依然保留。 每种进制暴露的结构不同,因此进制转换是编程中的日常工作。一个十六进制位恰好对应 4 个比特,是二进制的紧凑简写——FF 就是 11111111,一个字节总是两个十六进制位。这正是内存地址、颜色代码和 MAC 地址都使用十六进制的原因。八进制把比特按 3 个一组划分,如今主要留存在 Unix 文件权限中(chmod 755)。本工具只处理非负整数:没有固定位宽,因此不会按二进制补码解释(这里的 FF 是 255,而不是 −1)。
—
二进制
八进制
十进制
十六进制
使用方法
- 在输入框中输入或粘贴一个数字——只填数字,不要带 0x 或 0b 前缀。
- 选择该数字所用的进制:二进制(2)、八进制(8)、十进制(10)或十六进制(16)。
- 查看四种进制的结果,输入时即时更新。
- 用各自的复制按钮复制任意结果。
- 如果出现错误,说明输入包含所选进制中不存在的数字(例如八进制里的“8”)。
常见问题
- 数字可以多大?
- 任意大。转换使用大整数(BigInt),无论是 64 位 ID、256 位哈希还是更大的数值都能精确转换。普通的浮点转换器在超过 2^53(约 9×10^15)后会丢失精度;本工具从不舍入。
- 支持负数或小数吗?
- 不支持——本工具只转换非负整数。在真实硬件中,负数的表示取决于声明的位宽(二进制补码下,FF 作为 8 位有符号数是 −1,无符号则是 255),不知道位宽就没有唯一正确的答案。请在这里转换绝对值,再自行套用符号或位宽解释。
- 需要输入 0x 或 0b 前缀吗?
- 不需要——请去掉前缀。输入框只接受下拉框所选进制的有效数字,因此“0x1F”会被拒绝(“x”不是数字)。请输入“1F”并选择十六进制。
- 程序员为什么要用十六进制和八进制?
- 因为它们与比特整齐对应。一个十六进制位恰好是 4 比特,两位就是一个字节,因此十六进制非常适合内存地址、字节转储和 #RRGGBB 颜色代码。一个八进制位是 3 比特,正好对应 Unix 的 rwx 权限三元组(chmod 755)。
- 为什么我的输入被标记为无效?
- 因为它包含所选进制数字集之外的字符——例如二进制里的“2”或十六进制里的“G”。十六进制不区分大小写,首尾空白会被忽略,但数字中间的逗号、空格、下划线等分隔符不被接受。
相关主题指南
相关工具
位运算计算器
对两个整数进行 AND、OR、XOR、NOT 和移位运算 —— 以二进制、十六进制、无符号和有符号十进制显示,可选 8、16、32 或 64 位宽。
开发 0 0
ASCII 码表
256 行 ASCII / 扩展 ASCII 表 — 十进制、十六进制、八进制、二进制,以及控制字符名称。可搜索、可复制。
开发 0 0
格雷码转换器
在十进制、二进制和反射二进制格雷码之间双向转换,可选固定位宽并附 0-7 对照表。
转换 0 0
BCD 转换器(二进制编码十进制)
十进制与 8421 二进制编码十进制互转 — 每位 4 比特半字节、压缩 BCD 十六进制字节、BCD 有效性校验。
转换 0 0
字节大小换算(KB / KiB / MB / MiB / ...)
在十进制(KB、MB、GB——SI 基数 1000)与二进制(KiB、MiB、GiB——IEC 基数 1024)字节单位间换算,附比特。
转换 0 0
IPv4 地址转换器
在点分十进制、32 位整数、十六进制和二进制之间转换 IPv4 地址,并判断其为私有、公网、环回等类型。
网络 0 0