标题: 对两个整数变量的值进行互换(不用第三方变量) [打印本页] 作者: 石三伢子1 时间: 2015-11-2 18:36 标题: 对两个整数变量的值进行互换(不用第三方变量) int a = 3,b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
看不明白,求解释;作者: 260744042 时间: 2015-11-2 18:55
^:表示异或,两个二进制数相比,同是1或同是0则,结果为0,如11^11=00;
相异则为1,如10^01=11,
10
01
---------
11
a=3=011,b=5=101,
a = a ^ b; =====》011
101
------
110 = 6
b = a ^ b;======》110
101
-----
011 = 3
a = a ^ b; ======》110
011
-----
101 = 5作者: 小鱼儿211 时间: 2015-11-2 20:09
int a = 3,b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
一个数位异或(^)另一个数两次,结果还是它本身,如2^5^5=2
a = a ^ b;
b = a ^ b = a ^ b ^b =a = 3(把上面的式子a = a ^ b代入);
a = a ^ b = a ^ b ^ a = b =5;(把上面的式子结果a = a^b, b = a 代入);作者: 石三伢子1 时间: 2015-11-3 09:31
谢谢各位前辈,分析的很清晰,一看就明白了;作者: 宇婷 时间: 2015-11-3 09:54
我也看不明白