用异或运算交换两个数

来源:互联网 发布:js当前时间年月日 编辑:程序博客网 时间:2024/06/07 23:20

平常交换两个数一般是利用一个中间变量,其实可以利用异或^也可以实现交换,而且效率更快哦!

代码如下:

void Swap(int& a,int& b){    if(a!=b){        a^=b;        b^=a;        a^=b;    }}

原理:利用相同的数异或必为0,异或满足交换率和任何数和0异或都等于本身。

比如:

1.a=a^b;

2.b=b^a=b^(a^b)=b^b^a=0^a=a;

3.a=a^b=a^(b^a)=b^a^a=b^0=b;

证毕。

0 0
原创粉丝点击