GanuLabs

GanuLabs

信息型/工具型

进制转换器:二进制、十进制和十六进制详解

March 19, 2026

用清晰公式和快速参考表在二进制、十进制和十六进制之间转换。

为什么数字进制重要

十进制系统(基数10)使用0到9共十个数字。二进制(基数2)使用0和1两个数字。十六进制(基数16)使用0到9和A到F共十六个数字。这三种数字系统最具实际相关性,因为它们支撑着所有数字计算,二进制是计算机内部实际使用的;十六进制是程序员紧凑表示二进制数据的方式;十进制是人类自然计数的方式。

理解进制转换对计算机科学学生、处理内存地址或颜色代码的软件开发人员,以及排查以十六进制或二进制格式出现的技术输出的人很有用。这也是学校数学课程中的常见主题。

十进制转二进制

要将十进制数转换为二进制,反复除以2并记录余数。二进制数是逆序读取的余数。对于数字13:13 ÷ 2 = 6余1;6 ÷ 2 = 3余0;3 ÷ 2 = 1余1;1 ÷ 2 = 0余1。逆序余数:1101。所以十进制13的二进制是1101。

验证方法:在二进制中,每个位置代表2的幂次。从右到左读取1101:1×(2⁰) + 0×(2¹) + 1×(2²) + 1×(2³) = 1 + 0 + 4 + 8 = 13。两个方向的转换都使用每个数字的位置值。

二进制转十进制

要将二进制转换为十进制,将每个二进制位乘以其位置值(2的幂次)并求和。位置从右到左从0开始编号。对于二进制10110:从右边的位置是0、1、2、3、4。值:0×1 + 1×2 + 1×4 + 0×8 + 1×16 = 0 + 2 + 4 + 0 + 16 = 22。

常见二进制长度的位置值:4位数字(半字节)从0到15;8位数字(字节)从0到255;16位从0到65,535;32位从0到4,294,967,295。这些上限定义了每种数据类型可表示的值范围。

十六进制:程序员的速记符

十六进制(hex)更紧凑地表示二进制数据。一个十六进制位恰好代表四个二进制位(半字节)。这意味着8位字节始终可以写成恰好两个十六进制位。例如,二进制字节11111111等于十六进制FF,十进制255。紧凑的表示使十六进制非常适合内存地址、颜色代码和错误代码。

CSS颜色代码是一个常见应用:#FF5733是一个十六进制颜色,FF = 红色强度(255),57 = 绿色强度(87),33 = 蓝色强度(51)。将每个两位十六进制对转换为十进制就得到RGB值。这也是十六进制在调试中使用的原因,它以足够短、可以视觉扫描的格式表示内存的二进制内容。

十六进制与十进制之间的转换

十进制转十六进制:除以16并记录余数(0到15,10=A到15=F)。对于255:255 ÷ 16 = 15余15;15 ÷ 16 = 0余15。逆序余数:15、15 = FF。对于87:87 ÷ 16 = 5余7;5 ÷ 16 = 0余5。逆序余数:5、7 = 57。

十六进制转十进制:将每个数字乘以其位置值(16的幂次)并求和。对于2F:F(即15)在个位(16⁰ = 1),2在十六位(16¹ = 16)。计算:(2 × 16) + (15 × 1) = 32 + 15 = 47。所以十六进制2F等于十进制47。

快速参考表

使用这些基准进行快速检查。

DecimalBinaryHexadecimal
000
111
810008
101010A
151111F
161000010
25511111111FF

常见问题

将二进制转换为十进制最简单的方法是什么?

写出二进制数并从右到左从0开始给每个数字位置编号。将每个1位乘以2的相应位置幂次,然后求和结果。对于1011:(1×1) + (1×2) + (0×4) + (1×8) = 1 + 2 + 0 + 8 = 11。

为什么程序员使用十六进制而不是二进制?

因为十六进制更加紧凑。八个二进制位总可以写成两个十六进制位。读取像FF3A这样的内存地址比读取1111111100111010快得多。十六进制和二进制可以不经过十进制直接相互转换,使十六进制成为二进制数据的首选人类可读格式。

编程中0xFF是什么意思?

0xFF是十六进制表示,对应十进制值255或二进制11111111。0x前缀表示后面的数字是16进制。它在编程中常用于表示最大字节值、位掩码和颜色通道强度。

相关文章