二进制异或运算(XOR)是一种按位逻辑运算,其核心规则是 相同为0,不同为1。以下是具体说明:
一、运算规则
基本规则 - 0 ⊕ 0 = 0
- 0 ⊕ 1 = 1
- 1 ⊕ 0 = 1
- 1 ⊕ 1 = 0
(即对应位相同则结果为0,不同则结果为1)
扩展说明
- 任何数与0异或结果为其本身(如:0 ⊕ 5 = 5)
- 相同数异或结果为0(如:5 ⊕ 3 = 6)
二、运算步骤
二进制对齐
将两个数转换为二进制形式,从低位到高位逐位比较。例如:
- 5(101)与3(011)对齐后:
```
101
011
110(结果为6)
```
逐位计算
按位进行“相同为0,不同为1”的逻辑运算,最终合并结果。例如:
- 10100011 ⊕ 01100110 = 10000101(结果为135)
三、应用场景
数据去重
在数组中,若只有一个元素出现奇数次,其他均出现偶数次,通过异或运算可快速找到该元素。例如:
```java
int[] nums = {2,2,1};
int result = 0;
for (int num : nums) {
result ^= num;
}
// result = 1(出现奇数次的数字)
```
变量交换
通过三次异或操作可交换两个变量的值,无需额外临时变量。例如:
```java
int a = 5, b = 3;
a = a ^ b;
b = a ^ b;
a = a ^ b;
// a = 3, b = 5
```
四、性质总结
交换律: a ⊕ b = b ⊕ a 结合律
自反性:a ⊕ 0 = a
以上是二进制异或运算的核心要点,结合具体应用场景可灵活运用。