位操作——整数用位存储
在32位系统中,存储一位整型(int)数需要4个字节(4B),如果开辟一个空间,把其中的某个位1,就从原来的32b减少到1b,大大节省了空间。
原理
字符数组entry是存储位的数组,我们把数字N存到entry中,则
把第N位置1:entry[nBits/8] = entry[nBits/8] | (1 << (nBits%8) )
检验第N位是否为1:entry[nBits/8] & (1 << (nBits%8)
图示
函数
void setBit(char entry[], int nBits) { entry[nBits/8] = entry[nBits/8] | (1 << (nBits%8) ); } int checkBit(char entry[], int nBits) { return (entry[nBits/8] & (1 << (nBits%8) )); }