将十进制度数格式的纬度转换为十六进制值

时间:2019-03-13 23:11:10

标签: c# type-conversion hex decimal latitude-longitude

我有一个十进制度数格式的纬度值(32.60601045)。如何将其转换为十六进制字符串?

我有一个C#程序,该程序读取一个十六进制字符串并将其解码为不同的字段。我知道字符串中某处存在纬度,其值会转换为32.60601045,因此我想将32.60601045的期望值转换为十六进制字符串,以便可以将其定位在十六进制字节字符串中。

编辑: 这是十六进制字符串的示例:

02-00-62-E4-1B-C0-91-4D  40-40-AF-2D-29-64-D4-4A
5D-C0-00-66-66-6A-42-00  29-5C-8F-BD-00-00-63-00 

1 个答案:

答案 0 :(得分:1)

示例中的第三到第十六个十六进制对包含IEEE 754格式的纬度。可以将其转换为double,如下所示:

long val=0x40404d91c01be462L;
double dbl=BitConverter.Int64BitsToDouble(val);
Console.WriteLine(dbl);

纬度可以如下转换回其“原始”位:

long latBits = BitConverter.DoubleToInt64Bits(dbl);