分类:
2006-07-26 10:12:38
以前在程序中交换两个变量的值都要使用一个中间变量进行过渡,今天师弟让我看了一本关于游戏编程方面的书,书上提到了如何不使用中间变量来进行交换的思想,令不禁为数理大牛们的逻辑思维表示深深地佩服。
现在将这种思想写出来,供大家参考:
设变量为A和B;
交换A和B的值,只需做以下三步就OK;
1)A=A异或B;2)B=B异或A;3)A=A异或B。
如果你对此表示怀疑,那么我用下面的例子将你的疑惑去除!
设A=5,B=7,即用二进制表示为A=0101,B=0111;
第一次异或:A=0101异或0111=0010;
第二次异或:B=0111异或0010=0101=5,B即为A的初值5;
第三次异或:A=0010异或0101=0111=7,A即为B的初值7;
最后,我们可以看到A的值为7,B的值为5,正是我们所要的结果!