例子:不使用第三个变量,达到交换效果。即a=3,b=5,交换之后a=5,b=3。
几种代码演示:
int main()
{
int a = 3; //00000000 00000000 00000000 00000011
int b = 5; //00000000 00000000 00000000 00000101
printf("a = %d b = %d\n", a, b);
//方法1:使用额外变量
//int c = 0;
//c = a;
//a = b;
//b = c;
//printf("a = %d b = %d\n", a, b);
方法2:数字太大方法不适用
//a = a + b;
//b = a - b;
//a = a - b;
//printf("a = %d b = %d\n", a, b);
//方法3:异或
a = a ^ b; //00000000 00000000 00000000 00000110 - 6
printf("%d\n", a);
b = a ^ b; //00000000 00000000 00000000 00000011 - 3
a = a ^ b; //00000000 00000000 00000000 00000101 - 5
printf("a = %d b = %d\n", a, b);
return 0;
}