性質: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原來的值。