首先介绍一下异或位运算符
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的交换
下面附上代码,可以自己试一试哦!

本文介绍了如何使用异或位运算符实现两个整数变量之间的交换,并详细解释了其背后的数学原理。通过简单的步骤和直观的例子,展示了无需额外变量即可完成交换的过程。
1418

被折叠的 条评论
为什么被折叠?



