在线进制转换器

输入一个数,同时显示它的二进制、八进制、十进制、十六进制表示,一次转换四种结果。

使用说明

第1步:输入数值。可以直接写 255、1A,也可以带前缀写 0xFF、0b1010、0o377,工具会自动识别进制。

第2步:选当前进制(带前缀时会被自动覆盖)。

第3步:点「开始转换」,同时得到二进制、八进制、十进制、十六进制四种结果,以及按权展开的验算过程。

输入校验是严格的:在二进制下输入「102」会直接报错,而不是悄悄截断成「10」。这一点很重要——很多转换器会静默出错,让人以为结果是对的。

四种进制速查表(0 ~ 15)

这张表建议记熟,看颜色代码、文件权限、寄存器值时全靠它:

十进制二进制八进制十六进制
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

十六进制用 A ~ F 表示 10 ~ 15。为什么是 16?因为 1 位十六进制正好对应 4 位二进制,而 4 位二进制的全部组合刚好是 24 = 16 种。八进制同理:1 位八进制对应 3 位二进制,23 = 8。

转换原理:两个方向,两个方法

其他进制 → 十进制:按权展开,逐位相乘再相加。

每位数字乘以「基数的位次次方」,位次从右往左、从 0 开始。例如十六进制的 1A:

1A = 1 × 161 + 10 × 160 = 16 + 10 = 26

二进制的 11010 = 1×16 + 1×8 + 0×4 + 1×2 + 0×1 = 26。工具里的「按权展开」一栏就是把这个过程直接列出来,方便对照验算。

十进制 → 其他进制:除基取余,倒序读取。

用 26 转二进制为例:26 ÷ 2 = 13 余 0;13 ÷ 2 = 6 余 1;6 ÷ 2 = 3 余 0;3 ÷ 2 = 1 余 1;1 ÷ 2 = 0 余 1。把余数从下往上读,得到 11010。

关键点在于「倒序读」——余数是从最低位开始产生的,很多人第一次学时顺序搞反,结果正好是正确值的镜像。转十六进制就把除数换成 16,转八进制换成 8,方法完全一样。

为什么程序员偏爱十六进制

核心原因只有一个:十六进制和二进制之间的转换不需要计算。

4 位二进制 = 1 位十六进制,所以只要把二进制从右往左每 4 位切一段,逐段换成十六进制字符即可。反过来也一样,一位换四位。举例:

二进制1111111111111111
十六进制FFFF

所以 11111111 直接读作 FF,不用做任何除法。而同样的 8 位,写成十进制 255 就得算一遍,而且看不出位数。

另一个好处是「位」看得见。1 字节 = 8 位 = 2 位十六进制,1 位十六进制 = 4 位二进制,这种整齐的对应关系让十六进制天然适合表达二进制数据。八进制则是 1 位对 3 位二进制,所以在早期 12 位、36 位字长的机器上更常见,现在主要用于文件权限。

四个天天见到的实际例子

1. 网页颜色代码 #FF5733。这就是三个十六进制字节:FF = 255(红)、57 = 87(绿)、33 = 51(蓝),写成 RGB 就是 rgb(255, 87, 51)。理解了这一点,看到颜色代码就能大概猜出颜色——三位都接近 FF 是白色系,都接近 00 是黑色系。

2. Linux 文件权限 chmod 755。7 = 111(读+写+执行)、5 = 101(读+执行)、5 = 101(读+执行),三位分别对应属主、属组、其他人,结果是 rwxr-xr-x。所以 755 的含义不用背,按二进制拆开就明白了:4 是读、2 是写、1 是执行,数字相加决定权限组合。

3. 子网掩码 255.255.255.0。每个 255 是 8 个 1,即 11111111。整个掩码是 24 个 1 加 8 个 0,这就是「/24」的由来。判断两台设备是否在同一网段,本质就是在做二进制的按位与运算。

4. 内存地址与调试信息。崩溃日志里的 0x7ffd3c4a 这类地址、汇编里的寄存器值,几乎全用十六进制表示——因为地址本身是二进制位模式,用十六进制写既短又能按「位」对齐。

再补一个:内存容量和编号的对应关系也是二进制。1 KB = 210 = 1024 字节,1 MB = 220 字节,所以 32 位系统最大寻址 232 = 4 GB。这也是为什么 32 位系统装 8 GB 内存只能用 3 GB 多。

常见问题

十六进制里的字母是什么意思?

A ~ F 分别代表 10 ~ 15。因为十进制只有 0 ~ 9 十个符号,而十六进制需要 16 个符号,就用字母补齐。例如 1A = 1×16 + 10 = 26(十进制)。大小写不影响结果。

支持负数和小数吗?

当前版本支持非负整数。负数在计算机里通常以补码形式表示(例如 8 位下 −1 是 11111111,即十六进制 FF),小数则涉及浮点数的 IEEE 754 编码,两者规则与整数转换完全不同,本工具暂未包含。

为什么二进制下输入 102 会报错?

因为二进制只有 0 和 1 两个字符,2 是不合法的。有些转换器会静默截断成 10 并给出结果,让人误以为输入没问题。本工具的做法是直接报错,避免悄悄算错。

0x、0b、0o 前缀是什么?

分别是十六进制、二进制、八进制的写法标记,源自 C 语言并沿用至今。0xFF = 255,0b1010 = 10,0o377 = 255。本工具支持带前缀输入并自动识别进制,输出时也会附上带前缀的写法。

转换很大的数字会不会出错?

JavaScript 能精确表示的整数上限是 253 − 1(约 9×1015),超过后精度会丢失。本工具在检测到这种情况时会直接提示,而不是给出一个看起来正常实则错误的结果。需要处理更大整数请使用支持任意精度的工具或语言。

「补齐到 8/16/32 位」有什么用?

用于按固定宽度查看位模式,这在看寄存器、颜色通道、掩码、协议字段时很常见。补齐规则是 1 位十六进制 = 4 位二进制、1 位八进制 = 3 位二进制,所以 8 位对应 2 位十六进制。不关心位对齐时选「不补齐」即可。

进制转换有什么实际用途?

常见的有:网页颜色代码(十六进制)、Linux 文件权限(八进制)、子网掩码与 IP 计算(二进制)、内存地址与调试日志(十六进制)、嵌入式开发的寄存器配置(二进制与十六进制)。学计算机相关课程时,进制转换也是必考基础。

输入的数值会上传吗?

不会。转换完全在您的浏览器本地完成,输入的数值不会联网传输,也不会被保存。

本页由 价值007工具箱 整理编辑 | 最后更新:2026-10-03 | 内容依据公开的标准公式与规范整理,仅供参考