如何将十六进制字符串转换为未打包的IEEE 754格式号:

2024-06-28 18:57:34 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Python2.7.3:如何将十六进制字符串转换为未打包的IEEE754格式编号:

我有一组十六进制数据,格式如下:

data = '38 1A A3 44'

我想使用struct.unpack将其转换为浮点数:

fdata = struct.unpack('<f','\x38\xA1\xA3\x44')  # fdata=1304.8193359375

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


Tags: 数据字符串data格式structa3编号浮点数
1条回答
网友
1楼 · 发布于 2024-06-28 18:57:34

首先将十六进制代码点转换为字节字符串;^{}可以为您执行此操作,前提是删除空白:

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,)

相关问题 更多 >