#ifndef __BITBLOCK_HPP #define __BITBLOCK_HPP #include template class BitBlock { unsigned char b[unsigned(Bits/8)]; public: BitBlock() { memset(b,0,unsigned(Bits/8)); } int queryBit(unsigned long bitno) const { return (b[unsigned(bitno)/8]>>(bitno%8))&1; } void setBit(unsigned long bitno) { b[unsigned(bitno)/8] |= 1<<(bitno%8); } void resetBit(unsigned long bitno) { b[unsigned(bitno)/8] &= ~(1<<(bitno%8)); } }; #endif