这是正常的:
packed = struct.pack('<L',0x7c023a4f)
这不是:
address = '0x7c023a4f'
packed = struct.pack('<L',address)
我如何使这项工作? 我从binascii库中尝试了很多方法,但我似乎无法弄明白。
答案 0 :(得分:1)
在打包之前,您可以使用literal_eval
将字符串计算为十六进制数:
from ast import literal_eval
address = '0x7c023a4f'
packed = struct.pack('<L', literal_eval(address))
packed
# 'O:\x02|'
答案 1 :(得分:1)
将其转换为整数:
address = '0x7c023a4f'
packed = struct.pack('<L', int(address, 16))