如何交换a和b两个整数的值,不用额外空间【转载】
这个题貌似完全颠覆一般的Logic:交换两个整数需要一个额外的空间用于保存:t = b;b = a;a = t;粗看上去似乎没有办法,但是仔细想一下,既然不能用额外的空间,那么能用的方法就只有数学方法,也许有效,那么第一个想法就是用A+b看看,稍微想一下就可以得到下面这个解法:a = a + b;b = a - b;a = a - b;还有更绝的(由DxZ网友提供):a = a ^ b;b = a ^ b;a = a ^ b;位运算符 与(&)、非(~)、或(|)、异或(^) &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000 | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110 ~:0变1,1变0 ^:两边的位不同时,结果为1,否则为0.如1100^1010=0110 逻辑运算符 与(&&)、非(!)、或(||)http://blog.itpub.net/post/339/348212