石之碎片

位向量

 1 enum {
 2   BITSPERWORD=32,
 3   SHIFT=5,
 4   MASK = 0x1F
 5 };
 6 void set(int i) {
 7   x[i>>SHIFT] |= (1<<(i & MASK)) ;//  这里用到了求余的转换,实际是i % 32
 8 }        
 9 void clr(int i)  {
10   x[i>>SHIFT] &= ~(1<<(i & MASK));
11 }
12 bool test(int) {
13   return x[i>>SHIFT] & (1<<(i & MASK));
14 }

 

posted on 2012-09-05 23:49  石之碎片  阅读(136)  评论(0)    收藏  举报

导航