C語言異或運算在程序設計中的妙用

異或運算符^也稱XOR運算符。它的規則是若參加運算的兩個二進位同號,則結果爲0(假);異號則爲1(真)。即0 ^ 0=0,0 ^ 1=1,1 ^ 1=0。post

性質:spa

(1) 一個數與1異或會翻轉blog

(2) 一個數與0異或保持不變it

(3) 一個數異或它自己等於0class

(4) 每一位的結果只與該位有關。變量

應用:im

(1) 使特定位翻轉di

    假設有01110101,如今想讓第一位,第三位翻轉(最低位爲第一位),只要異或00000101,獲得01110000.time

(2) 交換兩個值,不用臨時變量new

 假如a=3,b=4。想將a和b的值互換,能夠用如下賦值語句實現:

 a=a ^ b;
 b=b ^ a;
 a = a ^ b;

即等效於如下兩步:

  ① 執行前兩個賦值語句:「a=a ^ b;」和「b=b ^ a;」至關於b=b ^ (a ^ b)。而b ^ a ^ b等於a ^ b ^ b。b ^ b的結果爲0,由於同一個數與自己相^,結果必爲0。所以b的值等於a ^ 0,即a,其值爲3。

  ② 再執行第三個賦值語句:a=a ^ b。因爲a的值等於(a ^ b),b的值等於(b ^ a ^ b),所以,至關於a=a ^ b ^ b ^ a ^ b,即a的值等於a ^ a ^ b ^ b ^ b,等於b。a獲得b原來的值。

相關文章
相關標籤/搜索