交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做:
tmp = a;
a = b;
b = tmp;
如果不用中间变量tmp,有以下三种方法:
方法1:
a=a+b;
b=a-b;
a=a-b;
方法2:
a=a^b;
b=a^b;
a=a^b;
方法3:
a=a+b-(b=a);
备注:推荐用异或的方法2,方法3是方法1的变体。
本文探讨了在编程中不使用中间变量交换两个数值的多种方法,并推荐使用异或运算作为首选策略,解释了其原理及优势。
交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做:
tmp = a;
a = b;
b = tmp;
如果不用中间变量tmp,有以下三种方法:
方法1:
a=a+b;
b=a-b;
a=a-b;
方法2:
a=a^b;
b=a^b;
a=a^b;
方法3:
a=a+b-(b=a);
备注:推荐用异或的方法2,方法3是方法1的变体。

被折叠的 条评论
为什么被折叠?