Bootstrap

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

;