参考: http://www.ruanyifeng.com/blog/2017/05/xor.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
逻辑运算之中,除了 AND 和 OR,还有一种 XOR 运算,中文称为”异或运算”。 它的定义是:两个值相同时,返回false,否则返回true。也就是说,XOR可以用来判断两个值是否不同。
true XOR true // false false XOR false // false true XOR false // true false XOR true // true上面代码中,如果两个二进制位相同,就返回0,表示false;否则返回1,表示true。
XOR 运算有一个很奇妙的特点:如果对一个值连续做两次 XOR,会返回这个值本身。
// 第一次 XOR 1010 ^ 1111 // 0101 // 第二次 XOR 0101 ^ 1111 // 1010