bit的置位,复位与测试

在C++中,有bitset类,可以作为bit的使用,下面进行如何利用32位的int型整数来进行位操作


首先声明需要存放的位数:

#define N 10000000

每一个int存放32位

#define BITSPERWORD 32

#define SHIFT 5

#defien MASK 0x1f

存的内存空间

int a[1+N/BITSPERWORD]

void set(int)

{ a[i>>SHIFT] |= (1<<(i&MASK))}

void clr(int)

{ a[i>>SHIFT] &= ~(1<<(i&MASK))}

void test(int)

{ return a[i>>SHIFT] & (1<<(i&MASK))}

上面的三个函数相似,i<



你可能感兴趣的:(c++)