C語言中位運算異或“∧”的作用
阿新 • • 發佈:2019-01-03
1.概念
異或運算子”∧”也稱XOR運算子。它的規則是若參加運算的兩個二進位同號,則結果為0(假);異號則為1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。
運算 | 說明 |
---|---|
0^0=0,0^1=1 | 0異或任何數,其結果=任何數 |
1^0=1,1^1=0 | 1異或任何數,其結果=任何數取反 |
x^x=0 | 任何數異或自己,等於把自己置0 |
2.應用
(1)使特定位翻轉
比如:01111010,想使其低4位翻轉,即1變為0,0變為1。可以將它與00001111進行∧運算,即
結果值的低4位正好是原數低4位的翻轉。要使哪幾位翻轉就將與其∧運算的該幾位置為1即可。這是因為原數中值為1的位與1進行∧運算得0,原數中的位值0與1進行∧運算的結果得1。
(2)實現兩個值的交換
通過按位異或運算,可以實現兩個值的交換,而不必使用臨時變數。例如交換兩個整數a=3,b=4的值,可通過下列語句實現:
a=a∧b;
b=b∧a;
a=a∧b;
#include <stdio.h>
void main()
{
int a=3,b=4;
a=a^b;
printf("first value %d\n",a);
b=b^a;
printf("second value %d\n",b);
a=a^b;
printf("third value %d\n",a);
}