如题,想用数组来储存一个二进制数。具体就是一个物体,具有多种状态,可以看作是开关。
int a
if(a==1)//000001
//---
if(a==2)//0000010
//---
但这样写起来太麻烦了,有无简单方法呢?
bool a;
a | 00000001
这样,a的最后一位就被赋值为1,就相当于用一位存储一个状态
a & 0000000
这样,读出来的值就是最后一位的值
或可以定义一个枚举类型,枚举本身就是一个有序整数列。
你可以保存一个二进制,但你无法保存一位二进制。
二进制位有多长,比如64位,那么可以用个long long 存储就可以了
访问具体位的时候可以通过按位与结合移位操作
比如要访问0到31位
long long bits;
bits=....
for(int i=0;i<32;i++)
{
if(bits&(1<<i))
// 第i位为1
else
//第i位为0
///置1
bits|=1<<i;
//置0
bits&=~(1<<i);
}