Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我可以用第三个变量
c=a|b; a=c&a; b=c&a;
但我需要在没有第三个变量的情况下做到这一点。我尝试使用 XOR 它也没有帮助我。
这是一个简单的一年级编程课问题:
a = a^b; b = a^b; a = a^b;
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