理解:
1、相同为0,不同为1
2、可以理解为2进制的无进位相加
性质:
1、0 ^ N = N
N ^ N = 0
2、交换律 结合律
a ^ b = b ^ a
a ^ b ^ c = a ^ ( b ^ c )
用异或实现两个数交换
#include"iostream"
using namespace std;
int main(){int a = 5;int b = 8;a = a ^ b; // a = 5 ^ 8 , b = 8b = a ^ b; // a = 5 ^ 8 , b = 5 ^ 8 ^ 8 -> a = 5 ^ 8 , b = 5 a = a ^ b; // a = 5 ^ 8 ^ 5 , b = 5 -> a = 8 , b = 5 cout << "a = " << a << endl; //结果:a = 8cout << "b = " << b << endl; //结果:b = 5
}
注意:如上操作需要满足 ——— a 和 b 是两个独立的区域