交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做:
tmp = a;
a = b;
b = tmp;
如果不用中间变量tmp,有以下三种方法:
方法1:
a=a+b;
b=a-b;
a=a-b;
方法2:
a=a^b;
b=a^b;
a=a^b;
方法3:
a=a+b-(b=a);
备注:推荐用异或的方法2,方法3是方法1的变体。
交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做:
tmp = a;
a = b;
b = tmp;
如果不用中间变量tmp,有以下三种方法:
方法1:
a=a+b;
b=a-b;
a=a-b;
方法2:
a=a^b;
b=a^b;
a=a^b;
方法3:
a=a+b-(b=a);
备注:推荐用异或的方法2,方法3是方法1的变体。