嵌入式程序开发-位清除
1uL:代表无符号长整型的1
#define BIT(x) (1uL<<(x)) // 位
#define MASK(x) BIT(x) // 屏蔽位(选择的位为1,其它为0)
#define UNMASK(x) (~BIT(x)) // 反屏蔽位(选择的位为0,其它为1)
#define GETBIT(x,bit) (x & MASK(bit))
#define SETBIT(x,bit) (x= x| MASK(bit))
#define CLRBIT(x,bit) (x= x & UNMASK(bit))
GETBIT:获取某个值的某一位是否为1
SETBIT:设置某个值的某一位为1
CLRBIT:设置某个值的某一位为0