异或与逻辑与和逻辑或一样是逻辑代数中的一种逻辑运算符,其运算逻辑为两两相同为假,反之,两两不同则为真。
对于命题 和 其异或操作 计算机中写做 p ^ q
的真值表为:
True | True | False |
True | False | True |
False | True | True |
False | False | False |
异或运算满足如下数学性质:
- 交换律:
- 结合律:
- 恒等律:
- 归零律:
- 对合运算:
在计算机中的实际运用中,可以利用异或的性质,快速的交换两个变量的值。
void swap(int *a, int *b) {
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
也可以用来解决特定的算法问题,比如这道Leetcode题目:LC268 丢失的数字。