Страница 1 из 1

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

Добавлено: 30 июн 2010, 12:11
dj_zlodey
доброго времени суток... может кто поможет.. в даташите на протокол обмена информацией приведена расшифровка полей...

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 Целое число курс

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

Добавлено: 30 июн 2010, 16:14
somewhere
Ну если тебе интересен сам процесс перевода, то вот
На языке высокого уровня достаточно присвоить переменной типа Double любое значение с точкой, а затем интерпретировать ее, как Int64 и преобразовать в HEX-строку. Для этого старшие и младшие 32-битные части преобразовать с помощью IntToHex