一、有临时变量
例如交换两个 int 变量 a,b
int a,b;
int temp;//创建临时变量
temp =a ;
a= b;
b=temp;
二、不创建临时变量
1、加减法
int a= 9;
int b =6 ;
a= a + b;//执行后a= 15
b = a - b;//b=15-6=9
a = a - b;//a=15-9=6
//执行完后a= 6, b= 9;
//该方法的不足是,当a,b 值很大时,a+b的值
//可能会溢出;
2、乘除法(类似于加减法)
a = a * b;
b = a / b;
a = a /b;
3、按位异或法(不会溢出)
在计算机中,异或简单地来说就是同为0,异为1.
即9^9=0;
6^6=0;
6^9=1;
异或运算存在交换律和结合律
int a=9;
int b=6;
a = a ^ b;
b = a ^ b;//b=(a^b)^b;由结合律的b=a^(b^b)=a
a = a^ b;//a=(a^b)^a=(a^a)^b=b
//a^a 的值为0,0与其他数异或为原数
如果上面的理解不了,我们可以化为二进制来举例
a=9,二进制为1001
b=6,二进制为0110
a=a^b=(1001与0110异或)1111
b=a^b=(1111与0110异或)1001
a=a^b=(1111与1001异或)0110