ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-09-08 17:02:30  阅读:284  来源: 互联网

标签:交换律 交换 整数 运算符 异或 详解 结合律


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

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有