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:a⊕a=0;
任意数与0异或得任意数:b⊕0=b;
异或满足交换律与结合律:a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。
4 用异或和与可以做加法运算
1)两个数先异或得到一个中间值temp1;然后两个数与一下并左移一位得到temp2;
2)判断temp1&temp2 == 0
3)若不等于0,重复1、2
4)否则执行temp1^temp2,得到结果。
参考
只出现一次的数字
原文链接: https://www.cnblogs.com/QQ2962269558/p/13192330.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/358847
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!