如何制作位数组?
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
}
我想制作一个 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
}