JavaScript异或运算

584 阅读1分钟

任何数和自己做异或运算,结果为 0,即 a⊕a=0a⊕a=0 。

任何数和 0 做异或运算,结果还是自己,即 a⊕0=⊕a⊕0=⊕。

异或运算中,满足交换律和结合律,也就是a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=ba⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

案例,给一个数组找到只出现一次的数字

var singleNumber = function (nums) {
    let num = 0;
    for (let i = 0; i < nums.length; i++) {
        num ^= nums[i]
    }
    return num
};