摘要:
首先看这样一个程序int a, b;a = a + b;b = a - b; 此时b = (a + b) - b = a; (经过第一步a为a+b)a = a - b; 此时a = (a + b) - a = b; (经过第二步时b已为a)可见这个程序实现了a和b的交换。注意+和-互为逆运算,可以得到(a+b)-b=a,埋个伏笔先。在看这个例子:int a, b;a = a ^ b;b = a ^ b;a = a ^b;这样也可以实现a和b的交换,是不是比较诡异。分析一下就很容易明白为什么可以这么实现了。首先需要熟悉位运算关于异或^的知识,异或即对应位相同为0,相异为1.假设... 阅读全文
posted @ 2013-05-08 13:02
PegasusWang
阅读(516)
评论(0)
推荐(0)
浙公网安备 33010602011771号