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