摘自《编程珠玑》一书第1章习题:
1: #define BITSPERWORD 32
2: #define SHIFT 5
3: #define MASK 0x1F
4: #define N 10000000
5: int a[1 + N/BITSPERWORD];
6:
7: void set(int i){
8: a[i >> SHIFT] |= (1 << (i & MASK));
9: }
10:
11: void clr(int i){
12: a[i >> SHIFT] &= ~(1 << (i & MASK));
13: }
14:
15: int test(int i){
16: return a[i >> SHIFT] & (1 << (i & MASK));
17: }
del.icio.us Tags: , , ,