1. 程式人生 > >C語言中位運算異或“∧”的作用

C語言中位運算異或“∧”的作用

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);

}

這裡寫圖片描述

參考: