Преобразование широты в десятичном формате в шестнадцатеричное значение - PullRequest
0 голосов
/ 14 марта 2019

У меня есть значение широты в формате десятичных градусов (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 Ответ

1 голос
/ 14 марта 2019

Шестнадцатеричные пары с третьего по десятый в вашем примере содержат широту в формате IEEE 754.Его можно преобразовать в double следующим образом:

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

Широта может быть преобразована обратно в ее «необработанные» биты следующим образом:

long latBits = BitConverter.DoubleToInt64Bits(dbl);
...