正常交换的代码如下:
int a=5,b=7;int t=a;a=b;b=t;int a=5,b=7; int t=a; a=b; b=t;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=aa=a^b; //a=a^a^b=0^b=b^0=bint 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=bint 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
暂无评论内容