正常交换的代码如下:
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],不用临时变量,交换两个整数变量的值,网络安全爱好者中心-神域博客网](https://img.godyu.com/2023/11/20231108023624514.png?imageView2/0/format/webp/q/75)
![图片[2],不用临时变量,交换两个整数变量的值,网络安全爱好者中心-神域博客网](https://img.godyu.com/2023/11/20231108023654920.png?imageView2/0/format/webp/q/75)
多看代码,少说废话
THE END
暂无评论内容