异或运算的辩白

异或运算就是 相同为零,不同为一。

对于异或来说,设置一个变量a和变量b分别赋初值为3,那么

                  B(异或之后的结果)

a=a^b;          a     00      b    11

b=a^b;          a      00     b     11

a=a^b;          a      11     b      11

这样的话a和b的值也相当于是进行了交换。

但是如果异或自己的话

                     B

a=a^a;          a     00      a    00

a=a^a;          a      00     a     00

a=a^a;          a      00     b      00

a就变成了0。

所以说用异或运算进行交换的时候一定要保证这个数不是自己,但是可以使相同的大小。

原文地址:https://www.cnblogs.com/xyqxyq/p/10211363.html