嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码 ,第一个设置a的bit 3,第二个清除a的bit 3。在以上两个操作中,要保持其它位不变。
#define BIT3 (0x1 << 3)
static int a;
//设置a的bit 3:
void set_bit3(void)
{
a |= BIT3;
}
//清a的bit 3
void clear_bit3(void)
{
a &= ~BIT3;
}
//保留第k位
void set_bit3(void)
{
a &= BIT3;
}
0x1表示为二进制就是0001
0x1<<3 = 0001<<3 = 1000 = 0x8
a |= BIT3 相当 a = a | BIT3 相当 a = a | 0x0008;
a &= ~BIT3 相当 a = a & ~BIT3 相当 a = a & 0xFFF7;