05-3 位运算符-异或
异或的运算符的是:^
,会按照二进制的方式运算。其运算规则如下:
0^0=0;
0^1=1;
1^0=1;
1^1=0;
异为1
,同为0
。(相同为假,相异为真)
我们来举一个例子试试:
-
例1
#include
using namespace std; int main() { cout << (0 ^ 0) << endl; cout << (0 ^ 1) << endl; cout << (1 ^ 0) << endl; cout << (1 ^ 1) << endl; return 0; } 运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)
0 1 1 0
-
例2
#include
#include "T2" using namespace std; int main() { int a = 50; int b = 100; int c = a ^ b; cout << a << endl; cout << b << endl; cout << c << endl; T2(a); T2(b); T2(c); return 0; } 运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)
50 100 86 00110010 01100100 01010110
在这里,我们创建了两个
int
的数据类型,其中,a
的值为 50,b
的值为 100。c
是a
和b
异或的产物。我们将
a
、b
和c
的二进制表达方式打印出来,可以看到,异或,只有两个相同位置上都是0
或者都是1
才能在结果的同位上得出0
,否则,得出的是1
。最后,再将二进制的
c
还原成十进制,即结果:86
。
总结:异为1
,同为0
。(相同为假,相异为真)
:-)