我有一个很长的十六进制字符串,表示一系列不同类型的值。我希望将这个十六进制字符串转换为字节数组,这样我就可以将每个值移出,并将其转换为适当的数据类型。
发布于 2011-04-16 06:32:21
假设您的十六进制字符串类似于
>>> hex_string = "deadbeef"
将其转换为字符串(Python≤2.7):
>>> hex_data = hex_string.decode("hex")
>>> hex_data
"\xde\xad\xbe\xef"
或者从Python 2.7和Python 3.0开始:
>>> bytes.fromhex(hex_string) # Python ≥ 3
b'\xde\xad\xbe\xef'
>>> bytearray.fromhex(hex_string)
bytearray(b'\xde\xad\xbe\xef')
请注意,bytes
是bytearray
的一个不可变版本。
发布于 2012-11-13 23:01:19
bytearray中有一个内置的函数,它可以做你想做的事情。
bytearray.fromhex("de ad be ef 00")
它返回一个bytearray,并读取带或不带空格分隔符的十六进制字符串。
发布于 2011-04-13 20:51:37
如果我理解正确,您应该查找binascii.unhexlify
import binascii
a='45222e'
s=binascii.unhexlify(a)
b=[ord(x) for x in s]
https://stackoverflow.com/questions/5649407
复制相似问题