2. 高位第四位置0:
第四位置零,其他位保留原值。
a&0111
3.置第三位为1:
其他位保留原值,第三位置一。
a|0100
4.第三位置1,其他位置0:
(a|0100)&0100
总结:记住四个字 “与零或一” 即 “&0 |1” 功能对应 “置0置1”
所有需求都往这个上转化,先由此确定选用的位操作符,再看其他位是否需要保留,或者进一步选择下一步操作的位操作符。
比如:取某位,相当于其他位置0,所以就要用&操作。
再比如上方第四个例子。
抑或
a = 1001
a^1111 = 0110 //相当于取反
a^0000 = 1001 //相当于没变化
一个抑或的小例子:
题目:交换两个数,不用第三块儿内存
a ^=b;
b ^=a;
a ^=b;
或
a = a + b;
b = a - b;
a = a - b;
知识点:a^b^b = a; 即两次抑或相当于^0000,值不变。