标题: 关于位运算的对两个数进行交换位置(不用第三方变量) [打印本页] 作者: 编程的梦想 时间: 2013-11-3 12:32 标题: 关于位运算的对两个数进行交换位置(不用第三方变量) int n=6,m=9;
n=n^m;
m=n^m;
n=n^m;//为什么这里的n还是原来的n,n在n=n^m运算时不是已经改变了吗?作者: 回天之力 时间: 2013-11-3 14:29
int a = 10;//a=1010;
int b = 5;//b=101;
a = a ^ b;//1010^101=1111; //a1=a^b; 可以先加上一个第三变量a1
b = a ^ b;//1111^101=1010;b=10; //b=(a1^b)^b; 这里的a已经是a1啦
a = a ^ b;//1111^1010=101;a=5; //a=a1^(a1^b); 这里的a都是a1,但是b的值一直没有改变,所以这个式子中跟a1的值无关。
希望在好好参详一下,品味一下就哦了。