我必须实现一个定义8位字数据的协议,首先从最低有效位(LSB)开始.我想用这个数据来实现这个数据unsigned char
,但是我不知道在C/C++中LSB和最高有效位(MSB)的位顺序是什么,可能需要交换位.
任何人都可以解释我如何找出unsigned char
编码:MSB-LSB或LSB-MSB?
例:
unsigned char b = 1;
MSB-LSB: 0000 0001
LSB-MSB: 1000 0000
Jus*_*eff 11
Endian-ness取决于平台.无论如何,除非您正在序列化您可能尝试执行的字节,否则您不必担心实际的位顺序.在这种情况下,您仍然不需要担心单个字节在机器上时的存储方式,因为无论如何您都必须单独挖掘这些位.幸运的是,如果按位AND与1,则无论存储顺序如何,都会获得LSB; bit-AND with 2,你得到下一个最重要的位,依此类推.编译器将整理出在机器代码中生成的常量,以便抽象出详细程度.
在C/C++中没有这样的东西.最低有效位是 - 好 - 最低有效位.由于这些位没有地址,因此没有其他排序.
归档时间: |
|
查看次数: |
3056 次 |
最近记录: |