如何将十六进制数据转换为十进制度纬度和经度?

逆向工程 全球定位系统
2021-07-08 21:42:27

我一直在尝试解码十六进制格式的 GPS 坐标(纬度和经度),并且文档没有明确的解释,请帮助我。我在下面添加了一些例子。

纬度 0x414F51 = +28.758963 dd(十进制度)

经度 0x45429B = +077.627784dd(十进制)

文档截图

官方文件

1个回答

您的屏幕截图可能包含示例数据而不是实际值

首先,根据您的文档,经度和纬度都是 4 个字节

并且您的文档中有一个普通数据包的示例

基于该数据包数据 lat 和 long 如下

4E    41 4F 51 53  N   AOQS   

45    42 9B 7D 5C  E   B›}\  

这些是正常的IEEE 浮点数

:\>xxd -s 94  -l 1 foo.bin
000005e: 4e                                       N

:\>xxd -s 95  -l 4 foo.bin
000005f: 414f 5153                                AOQS

:\>xxd -s 99  -l 1 foo.bin
0000063: 45                                       E

:\>xxd -s 100  -l 4 foo.bin
0000064: 429b 7d5c                                B.}\

:\>cdb -c ".formats 414f5153;q" cdb | grep -i float
  Float:   low 12.9574 high 0

:\>cdb -c ".formats 429b7d5c;q" cdb | grep -i float
  Float:   low 77.7448 high 0

:\>

反向地理编码此位置如屏幕截图所示

在此处输入图片说明