位图数据结构的操作
摘自《编程珠玑》一书第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: }
posted on 2011-05-12 11:39 Joshua Leung 阅读(337) 评论(0) 收藏 举报
浙公网安备 33010602011771号