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

标签 python python-3.x base64 hex ieee-754

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

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

例如,如果十六进制值为 B4 39 F5 42,我的纬度输出应为 1.3768

enter image description here

import binascii
import struct


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

输出:

5007.49658203125

最佳答案

你就快到了。您现在应该将 float 转换为度数,如您附加的文档中指定的:

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

结果将是 50.124943033854166对于 'F9 7B 9C 45'1.3768783569335938对于 'B4 39 F5 42' .

关于将十六进制转换为单精度 IEEE-754 浮点的 Python 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65785481/

相关文章:

python - 语法错误 : invalid syntax in mfs. cgi

python - .py 文件在浏览器中显示代码而不是运行

python - 许多大型 scipy 稀疏矩阵的内存高效存储

python - 如何使用 Python 和 pexpect 在多个 session 中运行 linux 可执行文件

canvas - Tkinter Canvas 中的滚动区域?

Python matplotlib,图像数据的无效形状

python - Django CharField 在不应该的时候接受空值

使用 base64encoding 时出现 Python unpickling 错误

由于包含 "incomplete"表情符号的字符串,Swift 4 base64 字符串到数据无法正常工作

php - 上传时图像自动旋转