首页 > 其他 > 详细

使用异或位运算符实现交换两个整数详解

时间:2019-09-08 18:45:59      阅读:134      评论:0      收藏:0      [点我收藏+]

首先介绍一下异或位运算符

0^0=0

1^0=0^1=1

1^1=0

若假设a,b为两个不同的整数,则:

a^a=0   b^b=0

同时异或满足交换律和结合律:

a^b=b^a  (应该不需要解释吧)

(a^b)^c=a^(b^c) (自己可以写个例子证明一下很简单)

现在我们写交换的语句:

a=a^b    

b=a^b     //因为我们上面写了a=a^b,所以这里的b=a^b=(a^b)^b=a^(b^b)=a^0=a

a=b^a     //因为上面b已经是a了,所以结合第一步就有a=b^a=a^(a^b)=(a^a)^b=0^b=b

至此就实现了a,b的交换

下面附上代码,可以自己试一试哦!

技术分享图片

 

使用异或位运算符实现交换两个整数详解

原文:https://www.cnblogs.com/wsylog/p/11487306.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!