码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈异或运算^的作用

时间:2020-03-14 20:07:22      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:技术   浅谈   十分   dash   http   异或   数据   src   isp   

很多算法题中使用位运算能够巧妙的解决很多问题,比如:

找出只出现一次的数

如果数组中只有一个数字出现一次,其他数字都出现两次。试找出这个数据

通常的情况,我们会采用遍历的思路。但是其实不用。因为异或运算有个十分重要的性质:任何一个数字异或它自己都等于0,而0异或任何数都等于那个数。

因此,但凡出现两次的数字,异或之后,相互抵消。遍历整个数组,最终留下的就是那个只出现一次的数字。怎么样,是不是很巧妙?此外,异或运算还可用于两数交换。比如

两数交换

通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a=3,b=4的值,可通过下列语句实现:

a=a∧b;
b=b∧a;
a=a∧b;

这样不通过任何中间变量,就实现了按照位运算实现了两数交换,过程如下图

技术图片

 

 

 另一个应用参考我的剑指offer专栏第40题——寻找只出现一次的数

浅谈异或运算^的作用

标签:技术   浅谈   十分   dash   http   异或   数据   src   isp   

原文地址:https://www.cnblogs.com/shaonianpi/p/12493782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!