gpt4 book ai didi

c++ - C/C++ 中的位顺序

转载 作者:可可西里 更新时间:2023-11-01 15:50:22 25 4
gpt4 key购买 nike

我必须实现一个以 8 位字定义数据的协议(protocol),该协议(protocol)首先从最低有效位 (LSB) 开始。我想用 unsigned char 实现这个数据,但我不知道 C/C++ 中 LSB 和最高有效位 (MSB) 的位顺序是什么,这可能需要交换位。

谁能告诉我如何找出 unsigned char 的编码方式:MSB-LSB 或 LSB-MSB?

例子:

unsigned char b = 1;

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

最佳答案

字节顺序取决于平台。无论如何,您不必担心实际的 bit 顺序,除非您正在序列化字节,而您可能正在尝试这样做。在这种情况下,您仍然不需要担心单个字节在机器上时是如何存储的,因为无论如何您都必须单独挖掘出这些位。幸运的是,如果你用 1 按位与,你会得到 LSB,不管存储顺序如何;与 2 进行位与运算,您将获得下一个最高有效位,依此类推。编译器将整理出在机器代码中生成哪些常量,从而抽象出该级别的细节。

关于c++ - C/C++ 中的位顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com