js 按位异或

8 ^ 7 // -> 15
8 ^ 8 // -> 0
// 1000 ^ 0111 -> 1111 -> 15
// 1000 ^ 1000 -> 0000 -> 0
异或:相同为0,不同为1. 异或同一个数两次,原数不变。

异或运算思路 : 先将两个数据转化为二进制数,然后进行按位异或运算,只要位不同结果为1,不然结果为0

每一位都不同,结果才为 1

从以上代码中可以发现按位异或就是不进位加法

 

 

常见场景

2、 给你一个长度为 n 的数组,其中只有一个数字出现了奇数次,其他均出现偶数次,问如何使用优秀的时空复杂度快速找到这个数字

力扣​leetcode-cn.com

参考

按位操作符​developer.mozilla.org图标算法 | InterviewMap​yuchengkai.cn图标

原文地址:https://www.cnblogs.com/yf2196717/p/14738360.html