不用临时变量,交换两个整数变量的值

正常交换的代码如下:

int a=5,b=7;
int t=a;
a=b;
b=t;

变量t是我们用来临时存放a的值的变量,那么我们怎么能不用这个临时变量来交换a和b的值呢?

我们可以用位运算中的异或运算(^)求解

对于异或运算符而言,相同的数异或为0,如520^520—>0

任何数和0异或都为它本身,如1314^0—>1314

并且满足交换律和结合律

int a=5,b=7;
a=a^b;
b=a^b; //b=a^b^b=a^0=a
a=a^b;  //a=a^a^b=0^b=b^0=b

结果如下

图片[1],不用临时变量,交换两个整数变量的值,网络安全爱好者中心-神域博客网
图片[2],不用临时变量,交换两个整数变量的值,网络安全爱好者中心-神域博客网

多看代码,少说废话

------本文已结束,感谢您的阅读------
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容