gpt4 book ai didi

c++ - 我如何使用 6 位来存储值?

转载 作者:行者123 更新时间:2023-11-28 00:14:07 25 4
gpt4 key购买 nike

我目前正在处理的数据单元(网络数据包 header )在其定义中有 2 个标志,存储在字节字段中并通过按位运算符访问。不幸的是,我只需要 2 位,我在想我能用其他 6 位做什么?我可以用它们来存储号码吗?

我可以使用它们来存储一些内部状态代码(值范围小于char吗?)并且不要浪费它们。

是否有任何小于字节的数据类型,我如何在 C++ 中使用它们?如果不是,我是否应该浪费这些位并让它们毫无意义?

最佳答案

您可以使用一个位字段,如所述here .

改编自该页面:

#include <iostream>
struct S {
// 6-bit unsigned field,
// allowed values are 0...63
unsigned int b : 6;
};
int main()
{
S s = {7};
++s.b;
std::cout << s.b << '\n'; // output: 8
}

关于c++ - 我如何使用 6 位来存储值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31418994/

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