异或(^)的含义与基本用法
异或的含义
异或(^)和与运算(&)、或运算(|)都是位运算,因为计算机的运算都是将数据转换成二进制来进行的,所以一般来说,位运算比加减乘除的算数运算快得多。异或的运算法则如下:
1 ^ 0 == 1
1 ^ 1 == 0
0 ^ 0 == 0
即相同为0,不同为1。
异或的运算性质
异或有几大运算性质:
-
交换律: ab==ba
-
结合律: aba==aab
-
任何非0的数和0异或的结果都是它本身
-
任何数和自己本身异或的结果都为0
如果你看到这里,感觉上面列的运算法则和性质有所冲突的时候,请考虑进制不同的情况。本质上异或是在二进制层面上的,这是它的运算法则,当直观表现在十进制上的,才是它的运算性质。
在二进制层面上,异或的运算可以看成是无进位相加,举个例子
1010110
1100011
^ 0110101
相加的两个二进制数,从右往左数第二位上都是1,1+1本来应该进位1,本位变成0的,然后^运算