通过MCP连接 →

输入计算

数学公式

广告

结果

十六进制(基数16)
D6
0xD6
二进制输入 11010110
十进制值 214
位数 8

什么是二进制转十六进制转换器?

这个工具可以把一个二进制(基数2,只有 0 和 1 两个数字)表示的数转换成十六进制(基数16,包含 0-9 以及 A-F)。十六进制在编程、内存地址、颜色代码和程序调试中应用非常广泛,因为它能更紧凑地表示二进制数据——每 4 个二进制位(比特)正好对应 1 位十六进制数字。

如何使用

在输入框中键入或粘贴一个二进制数字,例如 11010110,然后提交即可。工具会忽略空格和多余字符,因此 1101 0110 这样的写法同样有效。结果会显示对应的十六进制值、等价的十进制值以及总位数。

换算公式详解

转换的核心原理是 \(16 = 2^4\)。算法会先在二进制字符串的左侧补 0,直到长度是 4 的倍数,然后从右往左把它拆分成一个个 4 位的小组,每组称为「半字节(nibble)」。每个半字节的取值范围是 0 到 15,按下式计算

$$\text{Hex}_{16} = \sum_{i=0}^{n-1} d_i \cdot 16^{i}, \quad d_i \in \{0\text{–}9,\,A\text{–}F\} \;\leftarrow\; \text{Binary (base 2)}$$

即 \(8\cdot b_3 + 4\cdot b_2 + 2\cdot b_1 + b_0\) 计算,得出的值再映射为一位十六进制数字(0-9 之后接 A-F)。把这些数字依次拼接起来,就得到了最终的十六进制结果。

二进制位按半字节分组,每组对应一个十六进制数字
每四个二进制位(一个半字节)对应一个十六进制数字。

实例演算

11010110 为例。拆分成半字节:11010110。第一组等于 \(8+4+0+1 = 13 = D\);第二组等于 \(0+4+2+0 = 6\)。因此十六进制结果为 D6,换算成十进制是 214。

二进制四位值到十六进制数字查找表

将二进制转换为十六进制的最快方法是将比特分成四个一组(称为四位值),并用单个十六进制数字替换每个四位值。因为 \(2^4 = 16\),每个4位模式恰好映射到16个十六进制数字中的一个。记忆或参考下表可以让你逐个四位值转换任何二进制数,无需进行除法。

4位二进制(四位值) 十进制(10进制) 十六进制数字(16进制)
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F

实际例子:字节 11010110 分成 11010110。根据表格,这些映射到 D6,得到十六进制值 D6,等于十进制 214。如果二进制数的长度不是4的倍数,在分组前在左侧用前导零填充(例如,101101 变成 0010 11012D)。

关键术语

比特
数字信息的最小单位,包含单个二进制值0或1。该词是"二进制数字"的缩写。
四位值
四个比特的一组。因为四个比特表示 \(2^4 = 16\) 种可能的值,一个四位值恰好对应一个十六进制数字——这正是使二进制到十六进制转换如此直接的原因。
字节
八个比特的一组(两个四位值)。一个字节包含 \(2^8 = 256\) 种可能的值,用恰好两个十六进制数字表示,例如 11111111 = FF = 255。
基数/进制
位置计数制使用的不同数字符号的个数,也是位置值之间的乘数。二进制是2进制,十进制是10进制,十六进制是16进制。在 \(b\) 进制中,位置 \(i\)(从右侧的0开始计算)处的数字具有权值 \(b^{i}\)。
二进制(2进制)
仅使用数字0和1的计数制,其中每个位置的值是2的幂。它反映了数字电子的开/关状态,使其成为计算机的原生语言。
十进制(10进制)
使用数字0到9的日常计数制,其中每个位置的值是10的幂。在比较二进制和十六进制值时,它充当通用参考点。
十六进制(16进制)
使用16个数字的计数制:0–9后跟A–F(其中A=10、B=11、C=12、D=13、E=14、F=15)。它的紧凑性——每个四位值一个十六进制数字——使得长二进制字符串对人类来说更容易读写。
最高有效位/最低有效位
最高有效位是最左边的比特,具有最大的位置值(最高的2的幂)。最低有效位是最右边的比特,具有最小的值(\(2^0 = 1\))。同样的"最高/最低有效"概念也适用于十六进制中的整个数字。
0x前缀
一个常规标记,写在数字前面,表示该值用十六进制表示——例如 0xD6 表示十六进制值D6(十进制214),而不是某种其他进制中的"D6"数字。它广泛用于编程语言,如C、Java和Python。二进制通常类似地用 0b 前缀表示。

常见问题

如果位数不能被 4 整除怎么办?转换器会自动在左侧补 0,因此 1010110 会变成 0101 0110 = 56。

能处理前导 0 吗?可以——最终的十六进制输出会去掉前导 0,但这并不会改变数值大小。

结果是大写的吗?按照惯例,十六进制数字 A-F 会以大写形式显示,并加上 0x 前缀以便区分。

最后更新: