1、 按位與運算符
參加運算的兩個資料,按二進制位進行“與”運算。
運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1;
即:兩位同時為“1”,結果才為“1”,否則為0;
另,負數按補碼形式參加按位與運算。
“與運算”的特殊用途:
(1)清零。如果想将一個單元清零,即使其全部二進制位為0,隻要與一個各位都為零的數值相與,結果為零。
(2)取一個數中指定位
方法:找一個數,對應X要取的位,該數的對應位為1,其餘位為零,此數與X進行“與運算”可以得到X中的指定位。
例:設X=10101110,
取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;
還可用來取X的2、4、6位。
2、按位異或運算符^
參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1 0異或任何數=任何數
1^0=1,1^1=0 1異或任何數-任何數取反
任何數異或自己=把自己置0
(1)按位異或可以用來使某些特定的位翻轉,如對數10100001的第2位和第3位翻轉,可以将數與00000110進行按位異或運算。
10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6
(2)通過按位異或運算,可以實作兩個值的交換,而不必使用臨時變量。例如交換兩個整數a,b的值,可通過下列語句實作:
a=10100001,b=00000110
a=a^b; //a=10100111
b=b^a; //b=10100001
a=a^b; //a=00000110
(3)異或運算符的特點是:數a兩次異或同一個數b(a=a^b^b)仍然為原值a.
3、按位或運算符|
參加運算的兩個對象,按二進制位進行“或”運算。
運算規則:0|0=0; 0|1=1; 1|0=1; 1|1=1;
即 :參加運算的兩個對象隻要有一個為1,其值為1。
另,負數按補碼形式參加按位或運算。
“或運算”特殊作用:
(1)常用來對一個資料的某些位置1。
方法:找到一個數,對應X要置1的位,該數的對應位為1,其餘位為零。此數與X相或可使X中的某些位置1。
例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。