如何将一个十六进制数与十六进制列表合并

2 投票
1 回答
3974 浏览
提问于 2025-04-17 20:58

我有一个像这样的十六进制字节字符串列表

['0xe1', '0xd7', '0x7', '0x0']

(是从一个二进制文件中读取的)

我想把这个列表翻转过来,然后把它们拼接在一起,形成一个十六进制数字,

['0x07D7E1']

我该怎么把这个列表格式化成这个样子呢?

1 个回答

4

把你的十六进制数字合并成一个字符串:

'0x' + ''.join([format(int(c, 16), '02X') for c in reversed(inputlist)])

这段代码的输出中会明确包含 00 这个字节:

>>> inputlist = ['0xe1', '0xd7', '0x7', '0x0']
>>> '0x' + ''.join([format(int(c, 16), '02X') for c in reversed(inputlist)])
'0x0007D7E1'

不过,我建议你更好地了解你的二进制文件格式;比如可以使用 struct 来直接从文件中解包字节,转换成正确顺序的整数:

>>> import struct
>>> bytes = ''.join([chr(int(c, 16)) for c in inputlist])
>>> value = struct.unpack('<I', bytes)[0]
>>> print hex(value)
0x7d7e1

撰写回答