我有一个要求,我必须跨两个字节将HEX值写入11位“容器”。布局如下:字节5(位3)是lsb,数据进入字节4(位5)即msb。将数据写入相关位位置的最佳方法是什么?
例如,如果我需要将0x1DA值写入这些位置,那是在保持正确位排序的同时最好的方法。
仅供参考,用于8字节CAN消息的CAN通信。
我正在考虑这样做:
_templsb = DatatoWrite & 0x1F;
_templsb <<= 3;
Byte5 &= ~0xF8;
Byte5 = Byte5 | _templsb;
_tempmsb = DatatoWrite & 0x7E0;
_tempmsb >>= 5;
Byte4 &= ~0x3F;
Byte4 = Byte4 | _tempmsb;
这样是最好的方法吗?
答案 0 :(得分:1)