编程珠玑上学到的,记下来备忘。
#define BITSPERWORD 32
#define SHIFT 5#define MASK 0x1F
#define N 1000000
int a[1+N/BITSPERWORD];
void set(int i) { a[i>>SHIFT] |= (1<<(i&MASK));}
void clr(int i) { a[i>>SHIFT] &= ~(1<<(i&MASK));}
int test(int i) {return a[i>>SHIFT] & (1<<(i&MASK));}