powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Расшифровка 3байтного результата
3 сообщений из 3, страница 1 из 1
Расшифровка 3байтного результата
    #37468402
Тещща
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С одного девайса в комп ползут данные измерения в 3х байтном формате со знаком. Как 24битное значение со знаком затолкать в 32битное со знаком? Юзаю delphi.
Пусть в переменных а1,а2,а3 содержаться старший, средний и младший байты.
a1 shl 16 + a2 shl 8 + a3 чето не работает(((
...
Рейтинг: 0 / 0
Расшифровка 3байтного результата
    #37468422
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тещща,

"Не работает" - это компьютер вместе с отладчиком устраивают истерику "Не буду работать, не буду, не буду!" - или всё-таки в переменной оказывается неправильное значение?
Наугад: сами a1, a2, a3 часом не байтовые переменные? А если да, то часом не получается ли так, что сдвиги их попросту обнуляют?
...
Рейтинг: 0 / 0
Расшифровка 3байтного результата
    #37469302
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тещща,

Вы сами-то поняли, что делаете? - a1 shl 16 + a2 shl 8 + a3 даст вам само число a 1 a 2 a 3 .
Если знак - это старший бит числа, то вам же надо сдвинуть восьмой бит a 1 до шестнадцатого бита, а остальные семь - оставить на месте; при этом a 2 a 3 вообще остается без изменений.
Пусть a1,a2,a3 - старший, средний, младший байты (пусть именно byte).
Результат получаем типа так: (a1 div 2^7 * 2^15 + a1 mod 2^7) * 2^16 + a2 * 2^8 + a3
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Расшифровка 3байтного результата
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]