不用其他变量实现两变量互换
在对变量进行互换是,将创建一个临时变量来共同完成互换,临时变量的创建增加了系统资源的消耗。使用异或运算进行互换,而不使用第三变量,可以更高效运行。
public class VariableExchange {
public static void main(String[] args){
int a = 3;
int b = 4;
System.out.println("a = "+a+" b = "+b);
int c;
c = a;
a = b;
b = c;
System.out.println("a = "+a+" b = "+b);
int A = 3;
int B = 4;
System.out.println("A = "+A+" B = "+B);
A = A^B;
B = B^A;
A = B^A;
System.out.println("A = "+A+" B = "+B);
}
}
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
10 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
3 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
9 |
10^3的运算结果为9
如果C1 = A1^B1;
那么C1^A1 ==B1;
同理C1^B1 ==A1;
实例
A(C1) = A(A1)^B(B1);
B = B(B1)^A(C1);
A = B(A1)^A(C1);