异或

1 C/C++中异或的运算符号

int c = a ^ b;

2 异或运算结果

下面的0与1都是二进制

0 ^ 0 = 0

0 ^ 1 = 1

1 ^ 0 = 1

1 ^ 1 = 0

即相同为0;不同为1。

3 异或的妙用

任意数与自己异或得0:aa=0

任意数与0异或得任意数:b0=b

异或满足交换律与结合律:aba=baa=b(aa)=b0=b。

4 用异或和与可以做加法运算

1)两个数先异或得到一个中间值temp1;然后两个数与一下并左移一位得到temp2;

2)判断temp1&temp2 == 0

3)若不等于0,重复1、2

4)否则执行temp1^temp2,得到结果。

参考

只出现一次的数字

https://leetcode-cn.com/problems/single-number/solution/zhi-chu-xian-yi-ci-de-shu-zi-by-leetcode-solution/

 

原文链接: https://www.cnblogs.com/QQ2962269558/p/13192330.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    异或

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/358847

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午12:30
下一篇 2023年3月2日 下午12:30

相关推荐