如何将十六进制字符串转换为未打包的IEEE 754格式数字:
使用 Python 2.7.3:如何将十六进制字符串转换为解包的 IEEE 754 格式数字:
我有一串十六进制数据,格式如下:
data = '38 1A A3 44'
我想通过使用 struct.unpack 将其转换为浮点数:
fdata = struct.unpack('<f','\x38\xA1\xA3\x44') # fdata=1304.8193359375
有没有简单的 Python 方法,还是说我需要为 data 中的每个空格替换成转义序列呢?
1 个回答
7
首先,把十六进制的代码点转换成字节串;你可以使用binascii.unhexlify()
这个函数来完成这个操作,但记得要去掉空格哦:
import binascii
import struct
fdata = struct.unpack('<f', binascii.unhexlify(data.replace(' ', '')))[0]
示例:
>>> import binascii
>>> import struct
>>> data = '38 1A A3 44'
>>> struct.unpack('<f', binascii.unhexlify(data.replace(' ', '')))
(1304.8193359375,)