正常交换的代码如下:
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
结果如下
多看代码,少说废话
THE END
暂无评论内容