1.兩個杯子交換液體,拿第三個杯子做媒介
C語言示例代碼:
1 #include<stdio.h> 2 3 int main() 4 { 5 int a=10,b=20; 6 int c; 7 c=a; 8 a=b; 9 b=c; 10 printf("a=%d,b=%d\n",a,b); 11 12 return 0; 13 }
2.加減法實現,求和后分別減去自己,完成交換
C語言示例代碼:
#include<stdio.h> int main() { int a=10,b=20; a=a+b; b=a-b; a=a-b; printf("a=%d,b=%d\n",a,b); return 0; }
3.異或運算實現
C語言示例代碼:
1 #include<stdio.h> 2 3 int main() 4 { 5 int a=10,b=20; 6 a=a^b; 7 b=a^b; 8 a=a^b; 9 printf("a=%d,b=%d\n",a,b); 10 11 return 0; 12 }
重點分析下異或運算法,如下圖所示:
第6行:a=a^b;
第7行:a=a^b;
第8行:a=a^b;
實際上,加法內部實現就用的是按位異或。