一般交换的方法是通过创建一个数来进行交换
public class Deom {
public static void main(String[] args) {
int a=3;
int b=4;
int c=a;
a=b;
b=c;
}
}
若使用位运算法来交换
对于给定两个整数a,b,下面的异或运算可以实现a,b的交换
位运算方法分析:
第一步:a = a ^ b; 完成后 a变量的结果为a ^ b
第二步: b = a ^ b;
此时赋值号右边的a保存的是a ^ b的值,那么将赋值号右边的a用a ^ b替换,
得到(a^b)^b = a ^(b^b) = a^0 = a,
即经过第二步运算后b中的值为 a,即 b = a,将 a 换到了 b 里
第三步:a = a ^ b;
此时赋值号右边的a保存的仍然是a ^ b的值,不变,而赋值号右边的 b 已经是 a 了,将赋值号右边的a,b分别进行替换,
即此时赋值号右边a^b =(a^b)^a = a^b^a = a^a^b = 0^b = b, 该值赋值给a,即a=b
即经过第三步运算后a中的值为b,即a=b,将b换到了a里.