Я получаю данные от модуля GPS ublox в битовых битах 24 бит (3 байта из 4-байтового сообщения), и мне нужно преобразовать эти 24-битные поля данных в десятичные значения со знаком, но я могу не найти описание того, как это сделать в спецификации. Также я знаю определенные значения из другой программы, поставляемой вместе с модулем.24-битный тип данных подписки
Для положительных значений кажется, что он просто преобразует двоичное число 24 бит в dec, и это все, например. 0x000C19 = 3097
и 0x000BD0 = 3024
, но для отрицательных чисел у меня проблемы. 2, похоже, не работает. Вот некоторые известные значения: 0xFFFFC8 = -57
, 0xFCB9FE = -214528
, 0xFF2C3B = -54215
и 0xFFFA48 = -1462
. Используя дополнение 2, преобразование выполняется с нескольких номеров каждый раз (-56, -214530, -54213, -1464, соответственно). (Hex номера используются, чтобы избежать необходимости писать 24 цифры каждый раз.)
Спасибо за вашу помощь заранее!
Показать Ваш код. – 2501
Вы уверены, что программа, пришедшая с аппаратным обеспечением, вычисляет правильные отрицательные результаты? –
@MoralesBatovski, вопрос не в том, «почему этот код не работает?», Это «что делает эта программа черного ящика?». –