用异或运算实现两个数字的交换(装x)

来源:互联网 发布:java开发的简单小游戏 编辑:程序博客网 时间:2024/06/14 03:44

首先贴代码

void swap(int &a,int &b){    a=a^b;    b=a^b;    a=a^b;}
首先没有引入一个变量,其次看起来十分对称。。。。哈哈哈,其实也没什么,就是用了一个异或运算的性质。

key:异或运算遵循交换律,结合律。

执行第一个语句的时候

a=a^b;然后执行第二个语句b=a^b^b=a;然后执行第三个语句a=a^b^a=b;交(装)换(x)完毕!