查看一段内存中的BIT位需要用到位运算,首先把内存指针转换成char * ,才能进行处理,以下是用到的宏定义
#define BITMASK(b) (1 << ((b) % CHAR_BIT))
#define BITSLOT(b) ((b) / CHAR_BIT)
#define BITSET(a, b) ((a)[BITSLOT(b)] |= BITMASK(b)) /*将位数组a 的第b 设置为1*/
#define BITCLEAR(a, b) ((a)[BITSLOT(b)] &= ~BITMASK(b))/*将位数组a的第b位设置为0*/
#define BITTEST(a, b) (((a)[BITSLOT(b)] & BITMASK(b)) >>((b)%CHAR_BIT))/*测试维数组a的第b 位为1还是0*/