什么是二进制转十六进制转换器?
这个工具可以把二进制数(基数为 2,只用 0 和 1 表示)转换成对应的十六进制数(基数为 16)。十六进制在计算机领域应用非常广泛,因为每一位十六进制数刚好对应四位二进制数,能把又长又难读的二进制字符串大幅缩短,看起来更加直观。
如何使用
在输入框中填入一个二进制数,例如 11010110,然后提交即可。转换器会自动过滤掉无关字符,只保留 0 和 1,最后给出十六进制结果,并附上对应的十进制值供参考。
转换原理
转换的关键在于 \(16 = 2^4\) 这一关系。系统会先在二进制字符串左侧补零,使其总位数为 4 的倍数;接着从右往左将其拆分成一组组 4 位二进制,这些组被称为半字节(nibble)。每个半字节的取值范围是 0 到 15,正好可以一一对应到单个十六进制位:0–9 对应数值 0–9,A–F 对应数值 10–15。
$$\text{Hex} = \sum_{i=0}^{n-1} b_i \cdot 2^{\,n-1-i} \;\longrightarrow\; \text{base-16}$$
实例演示
以 11010110 为例。先拆分为两个半字节:1101 和 0110。第一个半字节的值为 \(8+4+0+1 = 13\) → D;第二个半字节的值为 \(0+4+2+0 = 6\) → 6。因此十六进制结果为 D6,相当于十进制中的 214。
二进制半字节到十六进制数字查找表
十六进制转换之所以可行,是因为恰好四个二进制位(一个半字节)映射到恰好一个十六进制数字。一个半字节可以表示 \(2^4 = 16\) 个不同的值,十六进制有16个数字(0–9和A–F),所以对应关系是一一对应的。要转换二进制数,请从右边将其分成4位组,必要时用前导零填充最左边的组,然后使用下表将每个半字节替换为其对应的十六进制数字。
| 4位二进制 | 十进制 | 十六进制数字 |
|---|---|---|
| 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 |
例如,二进制数1011 0110分成半字节1011和0110,它们映射到B和6,得到十六进制值B6。相同的位在十进制中等于182。
关键术语解释
- 位
- 最小的数字信息单位,保存单个二进制值0或1。该词是"二进制数字"的缩写。
- 半字节
- 4位的组。因为半字节有 \(2^4 = 16\) 个可能的值,它恰好对应一个十六进制数字,这就是为什么二进制到十六进制的转换每次进行4位。两个半字节组成一个字节(8位)。
- 二进制(2进制)
- 仅使用两个符号0和1的数字系统。每个位置代表2的幂,所以值为 \(\sum b_i \cdot 2^{n-1-i}\)。这是数字电子产品的原生语言。
- 十六进制(16进制)
- 使用16个符号的数字系统:0–9表示零到九,A–F表示十到十五。每个位置代表16的幂。十六进制是编写二进制的紧凑方式,因为一个十六进制数字替换四个位。
- 十进制(10进制)
- 日常使用的数字系统,使用10个符号(0–9),其中每个位置代表10的幂。转换工具通常将十进制值显示为熟悉的参考点。
- 最低有效位(LSB)
- 二进制数的最右边位,具有最小的位置值(\(2^0 = 1\))。改变它会使数值改变最小量。
- 最高有效位(MSB)
- 二进制数的最左边位,具有最大的位置值。改变它对数值大小的影响最大。
- 前导零填充
- 在二进制数的左侧添加零,使其总长度是4的倍数,允许将其分成完整的半字节。例如,110110填充为0011 0110后映射到十六进制(3和6,即36)。前导零不改变数值。
常见问题
为什么要在左侧补零? 按半字节分组要求总位数必须是 4 的倍数。在左侧补零不会改变数值大小,却能保证拆分出整齐的 4 位分组。
十六进制字母的大小写有区别吗? 没有区别。十六进制位 A–F 无论大写还是小写,代表的数值都相同;本工具统一输出大写形式。
如果我输入了空格或其他字符怎么办? 任何不是 0 或 1 的字符都会被忽略,所以 1101 0110 和 11010110 的转换结果完全一样。