C语言中的位操作
第一章 变量某位赋值与连续赋值
寄存器 |= 值
//例如:a = 1000 0011b
a |= (1<<2) //a = 1000 0111 b 单独赋值
a |= (3<<2*2) // 1011 0011b 连续赋值
第二章 变量某位清零与连续清零
寄存器 &= ~() 值
//例子:a = 1001 1111
a &= ~(1<<2)
//结果 a = 1001 1011
a &= ~(3<<2*1);
//结果a = 1001 0011
第三章 变量某位取反
寄存器 ^= 值
(异或操作)
//例子:a = 1001 0011b
a ^= (1<<6);
//结果:a = 1101 0011b