将 python 中的十六进制转换为一个完整的字节

Doing hex in python to a full byte

有没有办法让 python 在格式化十六进制时打印偶数字节?例如:

>>> hex(12)
'0xc'
>>> f'{12:#x}'
'0xc'
>>> f'{12:#X}'
'0XC'
>>> f'{12:X}'
'C'
>>> f'{12:x}'
'c'

此外,python 是否有在多个字节时分隔字节的格式?例如:

>>> hex(1000)
'0x3e8' # 0e e8

或者我需要为此创建自己的格式化程序吗?

您可以使用格式说明符在字符串中格式化固定长度的十六进制值...

  • 0 - 用 0 填充
  • 4 - 位数
  • x - 十六进制值

像这样:

 '{:04x}'.format(12)

哪个 returns:

'000c'

据我所知,您需要具有自定义格式功能才能按位置分组。也许是这样的:

hex_value = '0123456789abcdef'
' '.join(hex_value[i: i + 2] for i in range(0, len(hex_value), 2))

哪个 return:

'01 23 45 67 89 ab cd ef'