как преобразовать одно число в другое

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
dj_zlodey
Сообщения: 1
Зарегистрирован: 30 июн 2010, 11:34

доброго времени суток... может кто поможет.. в даташите на протокол обмена информацией приведена расшифровка полей...

0BBB — тип блока(3003)
00000027 — размер блока (39)
01 — атрибут скрытости(1)
02 — тип данных блока (2)
706F73696E666F00 — имя блока (posinfo)

все понятно кроме следующих трех полей...как из десятичных с точкой(запятой) получить шестнадцатеричные...

A027AFDF5D984840 — lon (49.1903648)
3AC7253383DD4B40 — lat (55.7305664)
0000000000805A40 — высота (106.0)



0036 — скорость(54)
0146 — курс (326)
0B — количество спутников(11)


в моем случае у меня есть информация в десятичной форме мне ее нужно приводить к шестнадцатеричной и пихать в интернет... еше в даташите есть такая табличка

Размер(байт) Тип поля Описание поля
8 Дробное число Lon - долгота
8 дробное число Lat - широта
8 Дробное число высота
2 Целое число скорость
2 Целое число курс
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Ну если тебе интересен сам процесс перевода, то вот
На языке высокого уровня достаточно присвоить переменной типа Double любое значение с точкой, а затем интерпретировать ее, как Int64 и преобразовать в HEX-строку. Для этого старшие и младшие 32-битные части преобразовать с помощью IntToHex
It's a long way to the top if you wanna rock'n'roll
Ответить