C/C++中的位顺序

前端之家收集整理的这篇文章主要介绍了C/C++中的位顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须实现一个以8位字定义数据的协议,首先以最低有效位(LSB)开头.我想用unsigned char来实现这个数据,但是我不知道在C/C++中LSB和最高有效位(MSB)的位顺序是什么,这可能需要交换位.

有没有人可以解释我如何找出一个无符号的字符被编码:用MSB-LSB或LSB-MSB?

例:

unsigned char b = 1;

MSB-LSB:0000 0001
LSB-MSB:1000 0000

解决方法

端点依赖于平台.无论如何,您不必担心实际的位顺序,除非您正在序列化您可能尝试执行的字节.在这种情况下,您仍然不需要担心在机器上如何存储单个字节,因为您将不得不单独挖掘位.幸运的是,如果按位AND与1,则得到LSB,而不管存储顺序如何; bit-AND与2,你得到下一个最重要的位,等等.编译器将整理在机器代码生成的常量,以便将细节级别抽象出来.

猜你在找的C&C++相关文章