- 功能:参加运算的两个数据,按二进制位进行“异或”(^)运算。
- 运算规则:
0 ^ 0 = 0
,0 ^ 1 = 1
,1 ^ 0 = 1
,1 ^ 1 = 0
。
即:参加运算的两个数据,如果两个相应位为“异”(值不同),则该位结果为 1,否则为 0。
#include<iostream>
using namespace std;
int XOROperator(int &a, int &b)
{
return a ^ b;
}
int main()
{
// 0000 0011 ^ 0000 0101 = 0000 0111
int a = 3, b = 5;
cout << XOROperator(a, b) << endl; // 6
return 0;
}
- “异或运算”的特殊作用:
- 使特定位翻转:找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。比如:X=1010 1110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。
- 与0相异或,保留原值:比如:X=1010 1110,X ^ 0000 0000 = 1010 1110。