首页/开发/正则与编码速查/二进制十六进制十进制互转

二进制十六进制十进制互转

二进制与十六进制按 4 位对 1 位互换,一个字节即两位十六进制;十进制转换靠位权展开或除基取余。实际排错要先分清数值层与字节层:进制决定写法,字节序与位宽决定解释结果,前导零与符号位是最常见的两处错误来源。

正则与编码速查开发更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌‌‌​‌‌​​‌​‌​‌‌‌‌​​​​​‌​‌‌‌‌​‌‌​​​‌​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​​​‌​‌‌‌​​‌​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌‌​​​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌​​‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​‌​​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

四个比特一位十六进制

二进制与十六进制之间是 4 位对 1 位的固定映射,一个字节正好写成两位十六进制;十进制与它们之间没有捷径,只能按位权展开或除基取余。实际工作里绝大多数转换发生在字节层面:看内存、看协议字段、看颜色值,关键是把「数值」和「字节序列」分开考虑,前者与进制有关,后者还与字节序有关。

基本信息

对应关系1 位十六进制等于 4 位二进制,1 字节等于 8 位等于 2 位十六进制
十进制 255二进制 11111111,十六进制 FF,是无符号单字节最大值
常用工具Python 的 bin/hex/int、printf、xxd、od、PowerShell 的 Format-Hex
补零惯例按字节对齐补零,如 0x0A 不写作 0xA,避免位宽歧义
字节序多字节数值在内存中的顺序分大端与小端,与进制无关

典型使用场景

  • 读抓包或内存转储,把十六进制字节还原成数值
  • 写协议实现,确认字段宽度与字节序
  • 核对校验和、掩码与 IP 换算
  • 看颜色值与时序参数,这些普遍用十六进制表示
  • 排查数据不一致:区分是数值错还是字节序错

转换示例

转换示例
# 数值层:进制之间互转
int('FF', 16)            # 255
int('11111111', 2)       # 255
hex(255)                 # '0xff'
bin(255)                 # '0b11111111'
# 字节层:字节序列与十六进制串互转
bytes([0x0A, 0xFF]).hex()          # '0aff'
bytes.fromhex('0a ff')             # b'\n\xff'
int.from_bytes(b'\x12\x34', 'big') # 4660,大端
int.from_bytes(b'\x12\x34', 'little')  # 13330,小端

位宽速查

单位位数十六进制位数十进制范围(无符号)
半字节410 到 15
字节820 到 255
双字节1640 到 65535
四字节3280 到 4294967295
八字节64160 到 2 的 64 次方减 1
同一个字节序列按大端与小端解释会得到两个不同数值,例如 12 34 大端是 4660、小端是 13330。判断字节序优先看协议文档或文件格式规范,而不是靠猜:常见的网络字节序是大端。
容量单位要区分十进制与二进制:存储厂商标称的 GB 多为 10 的 9 次方,而操作系统显示的 GiB 是 2 的 30 次方,两者相差约 7%,这是「买来 500G 只剩 465G」这类疑问的来源。

易错点

  • 丢掉前导零导致位宽变化:0x0F0A 写成 0xF0A 后,按两字节字段解析就会错位
  • 混淆有符号与无符号解释:0xFFFFFFFF 按 32 位无符号是 4294967295,按有符号补码是 -1
  • 按十进制习惯做十六进制进位,误以为 0x09 后面是 0x10(实际是 0x0A),掩码与偏移量算错
  • 把字节序问题误判为进制问题,反复转换进制而始终对不上,实际只需调换字节顺序
  • 用文本编辑器改二进制文件:换行转换、编码替换会静默破坏字节,必须用十六进制编辑器

数据来源与参考

  • Python 标准库文档:int.from_bytes 与 bytes.hex
  • GNU Coreutils 手册:xxd、od 的十六进制输出格式
  • RFC 1700 与 IETF 惯例:网络字节序为大端

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/regex/binary-hex-decimal-convert.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌‌‌​‌‌​​‌​‌​‌‌‌‌​​​​​‌​‌‌‌‌​‌‌​​​‌​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​​​‌​‌‌‌​​‌​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌‌​​​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌​​‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​‌​​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​