设A和B都为4位2进制数 初始值都为0000
例A &= ~(0x0f<<(4*0)) //(4*0) 4为4个位一起操作 *0位移动0位 也可写作(4*N)方便4个位4个位的进行操作,每次移动N个4位。
B |= (1<<(4*0))
A &= ~(0x0f<<(4*0)) 先进行位操作 f为四个位置1 同时操作4个位1并且向左移动0个四位。
结果为 ~(1111) 取反得(0000) 再和A(0000)进行 & 操作
结果(0000)清除了原来4位里的值。
也可以把(4*0)部分改为一个数字例如1、2、3。这样做可以清除指定数字那一位的值。
B |= (1<<(4*0)) 同样进行上述操作,先进行位操作 1左移0个四位
结果为 (0001) 再和B(0000)进行 | 操作
结果为(0001) 打开了B里面的0位。