代码如下:
int a = 5;
int b = 30;
Console.WriteLine(a^b);
Console.ReadKey();
输出结果是27
这是因为 5的二进制是
0000 0101
30的二进制是
0001 1110
而异或的算法就是,两个二进制数的每一位进行比较,如果相同则为0,不同则为1。所以应该列式:
0000 0101
0001 1110
--------------
0001 1011
就得到了 0001 1011。而这个二进制表示的十进制数是27。
您可能感兴趣的文章:深入理解C++移位运算符C# 位运算符整理C++位运算符详解(异或运算符和移位运算符)