使用 Python 2.7.3:如何将十六进制字符串转换为解压缩的 IEEE 754 格式数字:-
我有一串这种形式的十六进制数据:
data = '38 1A A3 44'
我想使用 struct.unpack 将其转换为 float :
fdata = struct.unpack('<f','\x38\xA1\xA3\x44') # fdata=1304.8193359375
是否有 Pythonic 解决方案,或者我是否需要以某种方式为 data 中的每个空格替换一个转义序列?
先将十六进制代码点转换为字节串; 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,)
我是一名优秀的程序员,十分优秀!