Как правильно обрабатывать два разных значения, хранящихся в одном байте данных.У меня есть байт, который содержит два куска, каждый из которых содержит свои собственные данные.Я хочу прочитать верхний и нижний клочки в их собственных переменных.
11110000
= Высокий 4-битный дроссель, который должен быть прочитан в $throttle
, и должен иметь значение от 0 до 15. 00001111
= низкий 4-битный тормоз, который должен быть прочитан в $brake
, и должен иметь значение от 0 до 15.
Не забывайте , водители могут использовать дроссель иодновременно тормозите, так что вы можете получить значение типа 11000111
.Я сам придумал решение для старших 4 бит, и это так же просто, как убрать младшие 4 бита с помощью оператора >>
(сдвиг вправо) 4 раза.$Throttle = $ThrBrk >> 4
, но поскольку я не могу сделать это за один ход для младших четырех битов, это выглядит довольно плохо в моем исходном коде.