我有一个像这样的十六进制字节字符串列表
['0xe1', '0xd7', '0x7', '0x0']
(从二进制文件中读取)
我想翻转列表并将列表附加在一起以创建一个十六进制数字
['0x07D7E1']
如何将列表格式化为此格式?
答案 0 :(得分:3)
将十六进制数字连接成一个字符串:
'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