运行环境
操作系统:Windows 7
Python版本:Python 3.7
正文
一般情况下,当我们需要交换两个变量的值的时候,至少需要引入1个第三方变量(当然,如果愿意的话,也可以引入第四方和第五方变量>_<),但是,当我们使用异或的时候就不必这么做,只需要这两个变量就可以完成他们之间数值的交换。
设,有两个变量 a 和 b.
其中,a = 10, b = 20.
现在使用 Python 进行如下的运算:
可以看到,经过三次异或操作,成功的交换了a和b的数值。
其实,只要明白了异或的规律,就知道了这其中的原因,异或的运算规则是:
相同为0, 不同为1.
将上面的运算过程展开写就是这样的:
a = a ^ b = 10 ^ 20 = 0b(01010) ^ 0b(10100) = 0b(11110) = 30 b = a ^ b = 30 ^ 20 = 0b(11110) ^ 0b(10100) = 0b(01010) = 10 a = a ^ b = 30 ^ 10 = 0b(11110) ^ 0b(01010) = 0b(10100) = 20