十六进制到二进制转换器

每个十六进制数字都精确对应4位,因此十六进制到二进制的转换是最简洁的进制转换方式。粘贴一个或多个十六进制值后,该工具即可生成二进制字符串,其中每个数字都被展开为补零后的4位半字节(nibble),特别适用于位域文档、固件寄存器及底层调试场景。

如何将十六进制转换为二进制

  1. 1

    粘贴十六进制输入

    可输入0至9及a至f之间的任意组合;如`0x`等前缀及任何分隔符都会被自动去除。

  2. 2

    每个数字展开为4位

    每个十六进制数字都会展开为对应的4位二进制形式,因此输出始终为每个数字4位。

  3. 3

    前导零始终保留

    每个半字节都会保留完整的4位,使字节边界保持对齐;没有裁剪选项。

  4. 4

    复制二进制结果

    输出为纯`0/1`字符串,按4位半字节分组,可直接粘贴至文档、固件注释或计算器中。

十六进制与二进制的对应关系

十六进制是二进制的紧凑表示形式:2个十六进制数字等于1字节(即8位)。由于每个十六进制数字恰好对应4位,两者之间的心算转换非常快捷。

半字节查找表

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

因此,0x2F 变为 0010 1111

为何 4 位分组如此重要

工程师在阅读STM32、AVR或RISC-V参考手册时,通常期望寄存器以4位为一组排列。这种分组方式能清晰表明0x8001只置位了MSB和LSB,中间没有任何其他位。

字节顺序和前缀

  • 0x是C语言风格的十六进制前缀;&H是较旧的BASIC写法;$用于6502汇编。转换器会去除这三种前缀,以及空格、短横线或冒号等任何非十六进制字符。
  • 二进制输出始终采用最高有效位优先的方式,即网络字节序。若目标系统为小端序,请在排列前先交换字节。
  • 每个十六进制数字始终输出完整的4位,因此32位寄存器值总是以32位输出。不存在可开启或关闭的前导零裁剪功能。

常见问题

没有。0xFF0xff0xFf都会转换为相同的11111111。转换器对大小写字母一视同仁。

此转换器仅处理绝对值:前导的-不是十六进制字符,因此会被去除,-0x010x01一样转换为0000 0001。如需补码或带符号输出,请使用专门的带符号数工具。

是的。使用空格或换行符分隔即可,转换器会去除分隔符:2A 3B将产生0010 1010 0011 1011。请注意,输出是一个连续流,输入值之间的边界不会被保留。

是的。每个十六进制数字始终输出完整的4位并保留前导零,因此像0x80010000这样的32位寄存器值会输出为1000 0000 0000 0001 0000 0000 0000 0000,字节边界始终对齐。

相关工具

此工具还提供其他语言版本