规则:
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
数学符号:⊕
英文简称:xor
程序符号:^
运算法则:
1. a ⊕ a = 0
2. a ⊕ b = b ⊕ a
3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;
4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
5. a ⊕ b ⊕ a = b.
6.若x是二进制数0101,y是二进制数1011;
则x⊕y=1110
应用:
基于法则5,用位运算实现数组元素交换:
private static void exchange(int[] arr, int x, int y) {
arr[x] = arr[x] ^ arr[y];
arr[y] = arr[x] ^ arr[y];
arr[x] = arr[x] ^ arr[y];
}