C++ 中的 23 位用户定义类型
23 bit user defined type in c++
我想知道是否可以在 C++ 中创建 23 位用户定义类型。我可以使用 3 个字符创建一个 24 位类型,但是我试图减少一点。有什么建议吗?
您可以使用位域。
struct TwentyThreeBits {
int x : 23;
TwentryThreeBits & operator = (int y) {
x = y;
return *this;
}
};
这允许您将成员 x
作为 23 位值进行操作。该类型的实际大小可能更大(可能 sizeof(TwentyThreeBits)
至少 sizeof(int)
)。
如果您想表示许多只占用 23 位的项目,您可以创建一个位数组(使用 vector<bool>
或 bitset
)并将 23 的正确倍数访问到该数组到达 "object".
我想知道是否可以在 C++ 中创建 23 位用户定义类型。我可以使用 3 个字符创建一个 24 位类型,但是我试图减少一点。有什么建议吗?
您可以使用位域。
struct TwentyThreeBits {
int x : 23;
TwentryThreeBits & operator = (int y) {
x = y;
return *this;
}
};
这允许您将成员 x
作为 23 位值进行操作。该类型的实际大小可能更大(可能 sizeof(TwentyThreeBits)
至少 sizeof(int)
)。
如果您想表示许多只占用 23 位的项目,您可以创建一个位数组(使用 vector<bool>
或 bitset
)并将 23 的正确倍数访问到该数组到达 "object".