c ++中的23位用户定义类型

时间:2015-04-20 17:21:13

标签: c++ c bit-manipulation

我想知道是否可以在c ++中创建一个23位用户定义类型。我可以使用3个字符创建一个24位类型,但我试图减少一点。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您可以使用位字段。

struct TwentyThreeBits {
    int x : 23;

    TwentryThreeBits & operator = (int y) {
        x = y;
        return *this;
    }
};

这允许您将成员x操作为23位值。该类型的实际大小可能更大(可能sizeof(TwentyThreeBits)至少为sizeof(int))。

如果您想表示许多只占23位的项目,您可以创建一个位数组(使用vector<bool>bitset)并访问该数组中的23的正确倍数到达“对象”。