目录
1.用第三个变量实现
通过临时变量tmp,交换两个变量的内容
2.不使用临时变量
但是这种写法会有问题,当a和b非常大的时候,会溢出
3.异或实现
异或(^):按二进制异或,相同为0,相异为1
分析:首先要知道一个点,0^a=a,a^a=0;
- a=a^b
- b=a^b //相当于b=a^b(此时的a)^b---->b=a^0------->b=a
- a=a^b //相当于a=a^b(此时的a)^a(此时的b)---->a=0^b------->a=b
目录
通过临时变量tmp,交换两个变量的内容
但是这种写法会有问题,当a和b非常大的时候,会溢出
异或(^):按二进制异或,相同为0,相异为1
分析:首先要知道一个点,0^a=a,a^a=0;
- a=a^b
- b=a^b //相当于b=a^b(此时的a)^b---->b=a^0------->b=a
- a=a^b //相当于a=a^b(此时的a)^a(此时的b)---->a=0^b------->a=b