交换变量的值的两种有趣方法(位操作与算术法) 1、位操作 a 11101 b 00111 a = a^b 11010 b = b^a 11101 a = a^b 00111 #include<stdio.h> #include <iostream> using namespace std; int main() { int a = 29, b = 7; a = a ^ b; printf("%d,%d\n", a, b); b = b ^ a; a = a ^ b; printf("%d,%d\n", a, b); system("pause"); return 0; } 2、算术法 #include<stdio.h> #include <iostream> using namespace std; int main() { int a = 29, b = 7; a=a+b; b=a-b; a=a-b; printf("%d,%d\n", a, b); system("pause"); return 0; }