1

我可以用第三个变量

c=a|b;
a=c&a;
b=c&a;

但我需要在没有第三个变量的情况下做到这一点。我尝试使用 XOR 它也没有帮助我。

4

2 回答 2

9

这是一个简单的一年级编程课问题:

a = a^b;
b = a^b;
a = a^b;
于 2013-07-24T14:10:43.957 回答
6

XOR 有一个特性,即对某事进行两次异或运算总是会让你回到开始的地方。您可以使用此事实在三个赋值中切换变量而无需第三个变量。

int a = 54;
int b = 23;

a = a XOR b; // (a XOR b)
b = a XOR b; // (a XOR b) XOR b = a
a = a XOR b; // (a XOR b) XOR a = b
于 2013-07-24T14:23:26.597 回答