我可以使用第三个变量
c=a|b;
a=c&a;
b=c&a;
但我需要在没有第三变量的情况下这样做。我尝试使用XOR也没有帮助我。
答案 0 :(得分:9)
这是一个简单的第一年编程课题:
a = a^b;
b = a^b;
a = a^b;
答案 1 :(得分:6)
XOR有一个属性,XORing东西两次总会带你回到你开始的地方。您可以使用此事实在三个分配中切换变量而不使用第三个变量。
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