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
。
我正在编写一个 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
。