У меня есть требование, когда я должен записать HEX-значение в 11-битный «контейнер» через два байта.Раскладка выглядит следующим образом: Байт 5 (бит 3) - это младший бит, а данные идут в байт 4 (бит 5), который является msb.Каков наилучший метод записи данных в рассматриваемые битовые местоположения?
Например, если мне нужно записать значение 0x1DA в эти места, что было бы наилучшим способом сделать это, сохраняя правильный порядок следования битов.
К вашему сведению, для связи по CAN длябайтовое сообщение CAN.
Я думал о том, чтобы сделать это:
_templsb = DatatoWrite & 0x1F;
_templsb <<= 3;
Byte5 &= ~0xF8;
Byte5 = Byte5 | _templsb;
_tempmsb = DatatoWrite & 0x7E0;
_tempmsb >>= 5;
Byte4 &= ~0x3F;
Byte4 = Byte4 | _tempmsb;
Что-то вроде этого - лучший способ сделать это?