Python 将十六进制转换为单精度 IEEE-754 浮点数的程序

Python program to convert Hexadecimal to IEEE-754 Floating Point with Single precision

我正在编写一个 Python 程序来解码我的传感器输出的 Base64(原始数据)以找到它的纬度和经度。

在检查了传感器随附的文档(如下附)以解码值后,我仍然不确定如何实现它。我在下面找到了一个部分解决方案来转换它,但不确定如何实现最终输出。

例如,如果 Hexa 值是 B4 39 F5 42,我的纬度输出应该是 1.3768

import binascii
import struct


data = 'F9 7B 9C 45'
fdata = struct.unpack('<f', binascii.unhexlify(data.replace(' ', '')))[0]
print(fdata)

输出:

5007.49658203125

你快到了。您现在应该按照所附文档中的规定将浮点数转换为度数:

deg = fdata // 100 + (fdata % 100) / 60

'F9 7B 9C 45' 的结果为 50.124943033854166'B4 39 F5 42' 的结果为 1.3768783569335938