位向量
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 }
浙公网安备 33010602011771号