其他分享
首页 > 其他分享> > 如何将十六进制字符串转换为解压缩的IEEE 754格式编号: –

如何将十六进制字符串转换为解压缩的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

是否有Pythonic解决方案或者我是否需要以某种方式替换数据中每个空间的转义序列?

解决方法:

首先将十六进制代码点转换为字节串; 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,)

标签:python,ieee-754
来源: https://codeday.me/bug/20190823/1695577.html