十六进制转二进制转换器
这个十六进制转二进制转换器可将十六进制(基数 16)数转换为二进制(基数 2)表示。输入任意十六进制数,即可查看对应的二进制结果,并附有每个十六进制数字到 4 位二进制组的映射分解说明。
十六进制转二进制转换器
将十六进制数转换为其二进制表示
常见问题
如何将十六进制转换为二进制?
将每个十六进制数字替换为其对应的4位二进制值。映射关系为:0=0000、1=0001、2=0010、...、9=1001、A=1010、B=1011、C=1100、D=1101、E=1110、F=1111。例如,十六进制2F转换时将2替换为0010,将F替换为1111,得到00101111。这种直接替换有效,因为每个十六进制数字精确代表4个二进制位(因为16=2⁴)。
什么是十六进制?
十六进制(hex)是一种以16为基数的数字系统,使用十六个符号:0-9表示0到9的值,A-F表示10到15的值。它广泛用于计算,因为每个十六进制数字完美地映射到4个二进制位,提供了一种紧凑且便于人类阅读的表示二进制数据的方式。两个十六进制数字代表一个字节(8位),所以像11111111这样的字节值可以简单地写为FF。
为什么每个十六进制数字等于4个二进制位?
每个十六进制数字等于4个二进制位,因为16=2⁴。一个十六进制数字可以表示0-15的值,这恰好是4个二进制位的范围(0000到1111)。这种完美的2的幂次关系意味着十六进制和二进制之间的转换只是简单的直接替换,无需任何算术。这就是为什么十六进制成为计算中二进制的首选简写,而不是十进制或八进制。
0xFF在二进制中是什么?
0xFF在二进制中是11111111(八个1)。0x前缀表示十六进制数。十六进制中的F等于十进制15,即二进制1111。由于FF有两个十六进制数字,每个转换为4位,结果是1111 1111=11111111。这等于十进制255,代表无符号8位字节的最大值。0xFF通常在编程中用作位掩码,以隔离单个字节。
十六进制用于哪些场景?
十六进制在计算中被广泛使用:Web设计中的颜色代码(#FF5733)、调试中的内存地址(0x7FFF5FBFF8AC)、网络中的MAC地址(00:1A:2B:3C:4D:5E)、Unicode字符代码("A"的U+0041)、加密哈希(SHA-256)和汇编语言编程。它受到偏爱,因为它提供了二进制数据的紧凑、便于人类阅读的表示,两个十六进制数字精确代表一个字节。
如何将二进制转换为十六进制?
将二进制数从右侧开始分成每4位一组。如果需要,用前导零填充最左边的组。然后将每个4位组替换为对应的十六进制:0000=0、0001=1、...、1001=9、1010=A、1011=B、1100=C、1101=D、1110=E、1111=F。例如,二进制11010110分组为1101 0110,转换为十六进制D6。
十六进制数字A到F是什么?
十六进制数字A到F代表十进制值10到15:A=10(二进制1010)、B=11(1011)、C=12(1100)、D=13(1101)、E=14(1110)、F=15(1111)。使用字母是因为每个十六进制位置必须代表16个可能的值(0-15),这超出了十个可用的十进制数字。大写(A-F)和小写(a-f)在大多数场景下都可以接受,但大写是惯例。
如何将二进制转换回十六进制?
从右到左将二进制数字分成每4位一组,然后将每组转换为对应的十六进制。例如,10110010变为1011 0010,即十六进制B2。
如何将十六进制转换为二进制
十六进制与二进制之间的转换是计算机领域最简便的进制转换之一。由于十六进制是十六进制(以 16 为基数),二进制是以 2 为基数,而 16 恰好是 2 的整数次幂(16 = 2⁴),因此每个十六进制数字可以直接对应恰好 4 位二进制。无需任何算术运算,只需查表替换即可。
逐步转换方法
按以下步骤手动将十六进制数转换为二进制:
第一步:写下十六进制数
去掉 0x 或 # 等前缀。例如,0x2F 处理后变为 2F。
第二步:将每个十六进制数字替换为对应的 4 位二进制
使用以下映射表:0=0000、1=0001、2=0010、3=0011、4=0100、5=0101、6=0110、7=0111、8=1000、9=1001、A=1010、B=1011、C=1100、D=1101、E=1110、F=1111。
第三步:合并所有 4 位组
从左到右拼接各组二进制,即得到完整的二进制表示。
为何每个十六进制数字等于 4 个二进制位
一个十六进制数字可以表示 0 到 15 的值,恰好等于 4 位二进制的范围(2⁴ = 16)。因此每个十六进制数字恰好对应一个 4 位二进制半字节(nibble)。这种完美的 2 的幂次关系,正是十六进制成为计算机领域二进制数据首选简写形式的原因,而不是十进制或八进制。
两个十六进制数字代表一个字节(8 位),四个代表一个 16 位字,八个代表一个 32 位字。这种整齐的对应关系使十六进制到二进制的转换极为机械化,无需任何计算。
十六进制转二进制示例
以下示例逐步演示转换过程,从简单的单字节值到多字节颜色代码。
将 2F 转换为二进制
- 2 → 0010
- F → 1111
- 2F = 0010 1111(十进制:47)
将 4FA 转换为二进制
- 4 → 0100
- F → 1111
- A → 1010
- 4FA = 0100 1111 1010(十进制:1,274)
将 FF 转换为二进制
- F → 1111
- F → 1111
- FF = 1111 1111(十进制:255 —— 无符号 8 位字节的最大值,8 个二进制位全为 1)
将颜色代码 #3A7BD5 转换为二进制
- 3 → 0011
- A → 1010
- 7 → 0111
- B → 1011
- D → 1101
- 5 → 0101
- 3A7BD5 = 0011 1010 0111 1011 1101 0101
24 位结果分为三个字节:红色通道 R=00111010(58)、绿色通道 G=01111011(123)、蓝色通道 B=11010101(213)。
十六进制转二进制对照表(单位数字 0–F)
| 十六进制 | 十进制 | 二进制(4 位) |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 2 | 2 | 0010 |
| 3 | 3 | 0011 |
| 4 | 4 | 0100 |
| 5 | 5 | 0101 |
| 6 | 6 | 0110 |
| 7 | 7 | 0111 |
| 8 | 8 | 1000 |
| 9 | 9 | 1001 |
| A | 10 | 1010 |
| B | 11 | 1011 |
| C | 12 | 1100 |
| D | 13 | 1101 |
| E | 14 | 1110 |
| F | 15 | 1111 |
此表涵盖全部 16 个单位十六进制数字。对于多字节数值(00–FF),只需对每个十六进制数字依次应用同样的 4 位替换即可。完整的 256 条目对照表(00–FF)可在上方转换器中交互查看。
编程语言中的十六进制转二进制
大多数编程语言均提供内置函数用于十六进制与二进制之间的转换。
Python
# 将十六进制字符串转换为二进制字符串
hex_value = "FF"
binary_value = bin(int(hex_value, 16))
print(binary_value) # '0b11111111'
# 去掉 '0b' 前缀并补足 8 位
binary_clean = bin(int(hex_value, 16))[2:].zfill(8)
print(binary_clean) # '11111111'
# 按 4 位分组格式化输出
hex_value = "3A7BD5"
binary_str = bin(int(hex_value, 16))[2:].zfill(len(hex_value) * 4)
grouped = ' '.join([binary_str[i:i+4] for i in range(0, len(binary_str), 4)])
print(grouped) # '0011 1010 0111 1011 1101 0101'
JavaScript
// 将十六进制字符串转换为二进制字符串
const hexValue = "FF";
const binaryValue = parseInt(hexValue, 16).toString(2);
console.log(binaryValue); // '11111111'
// 补足 8 位
const padded = binaryValue.padStart(8, '0');
console.log(padded); // '11111111'
// 对于较大的十六进制值,使用 BigInt
const bigHex = "3A7BD5";
const bigBin = BigInt("0x" + bigHex).toString(2).padStart(bigHex.length * 4, '0');
console.log(bigBin); // '001110100111101111010101'
Java
// 将十六进制字符串转换为二进制字符串
String hexValue = "FF";
String binaryValue = Integer.toBinaryString(Integer.parseInt(hexValue, 16));
System.out.println(binaryValue); // "11111111"
// 补足 8 位
String padded = String.format("%8s", binaryValue).replace(' ', '0');
System.out.println(padded); // "11111111"
// 对于较大的值,使用 Long
String bigHex = "3A7BD5";
String bigBin = Long.toBinaryString(Long.parseLong(bigHex, 16));
System.out.println(bigBin); // "1110100111101111010101"
应用场景
- 数字电路设计与分析中的十六进制转二进制需求
- 利用二进制表示进行计算机内存调试
- 编程中的二进制数据处理
- 汇编语言编程与机器码分析
- 网页开发中的颜色代码转换
- 学习数字进制体系的教学用途