GPS Latitude Hex从2的补码到整数/十进制转换

时间:2019-04-06 10:43:17

标签: c# .net

我有一个GPS设备文档,其中指出它们发送的纬度和经度数据已从具有6个隐式十进制的整数转换为HEX。如果value为负数,则以2的补码格式表示。

我们可以轻松地转换正值,但是当值是负数时就会出现问题。使用C#BitConverter.ToInt32,它将转换:

runBlocking

要检查其是否为负值,我们正在检查整数值是否超出纬度/经度范围。因此,如果经度在-180到180之间,则它为负。但是如何将这个2的补码值转换为负经度?

编辑: 添加用于将十六进制转换为整数的代码:

Longitude: 24-F7-07-E3 -->> 723388387 (wrong, it must be negative), 
Latitude: 04-05-0C-00 -->> 67439416(correct)

0 个答案:

没有答案