1. 基本定义
XOR(Exclusive OR,异或)是一种逻辑运算符,用于比较两个二进制位的值。其规则为:
- 相同为0:两输入位相同时(0⊕0 或 1⊕1),输出0。
- 相异为1:两输入位不同时(0⊕1 或 1⊕0),输出1。
2. 真值表
A | B | A ⊕ B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
3. 重要性质
- 交换律:A ⊕ B = B ⊕ A
- 结合律:A ⊕ (B ⊕ C) = (A ⊕ B) ⊕ C
- 自反性:A ⊕ A = 0;A ⊕ 0 = A
- 可逆性:若 A ⊕ B = C,则 C ⊕ B = A(用于加密/解密)
4. 应用场景
- 加密算法:通过密钥对数据进行异或加密(如一次性密码本)。
- 校验与纠错:用于奇偶校验、CRC校验等。
- 编程技巧:
- 交换变量:
a ^= b; b ^= a; a ^= b;
(无需临时变量)。 - 找不重复数:数组中所有数异或,结果即为唯一出现一次的数字。
- 交换变量:
- 硬件电路:用于加法器、比较器等数字电路设计。
5. 示例
- 加密:明文
1010
⊕ 密钥1100
= 密文0110
。 - 解密:密文
0110
⊕ 密钥1100
= 明文1010
。 - 交换变量:
a=5(101)
,b=3(011)
→ 三次异或后a=3
,b=5
。
6. 注意事项
- 不可直接用于浮点数:异或通常用于整数或二进制位操作。
- 优先级:在表达式中注意加括号(如
(a ^ b) == c
)。
7. 扩展符号
- **⊕**:数学/逻辑表示。
- ^:编程语言中常用符号(如C/C++、Python的
^
运算符)。
理解XOR的核心在于掌握其“不同为真”的特性,灵活应用于算法优化和底层数据处理中。