如何制作位数组?

How to make an array of bits?

我想制作一个 int 位字段数组,其中每个 int 有一位,这意味着所有数字都将是 1 或 0,我该如何编码?

我试过了

struct bitarr {
    int arr : 1[14];
};

但这不能编译,我不认为这是方式

您不能对这些位进行排列。相反,为您的位创建单个 16 位变量,然后不是以 i[myindex] 访问它,而是可以以 bitsVariable & (1 << myindex).

访问它

要设置位,您可以使用:

bitsVariable |= 1 << myindex;

要清除位,您可以使用:

bitsVariable &= ~(1 << myIndex);

要检查位,您可以使用:

if (bitsVariable & (1 << myIndex)) {
    //Bit is set
} else {
    //Bit is not set
}