好老的题了,,不过还是学习了一下异或
如下代码所示:
#include <iostream.h>
void swap1(int& a,int& b)
{
a = b-a;
b = b-a;
a = a+b;
}
void swap2(int& a,int& b)
{
a = a^b;
b = a^b;//b=a^b=a^b^b=a;
a = a^b;//a=a^b=a^b^a=b;
}
int main()
{
int a=9,b=5;
swap1(a,b);
int m=9,n=5;
swap2(m,n);
cout<<a<<","<<b<<endl;
cout<<m<<","<<n<<endl;
return 0;
}
对于第一种方法,不解释了
对于异或倒是学到了不少。
关于异或的知识见另外一Bolg 异或文章