public static void main(String[] args) {
int a = 2;
int b = 4;
System.out.print("交换之前a是" + a);
System.out.println(";交换之前b是" + b);
a = a ^ b;//^异或运算
b = a ^ b;//
a = a ^ b;
System.out.print("交换之后a是" + a);
System.out.print(";交换之后b是" + b);
}
原理:
2的二进制是0000 0010,
4的二进制是0000 0100,
那么2 ^ 4 = 0000 0110 = 6
故 a = a ^ b
也就是 a = 2 ^ 4 = 6
同理:
b = a ^ b
也就是 a = 6 ^ 4 = 0000 0110 ^ 0000 0100 = 0000 0010 = 2
a = a ^ b
也就是 a = 6 ^ 2 = 0000 0110 ^ 0000 0010 = 0000 0100 = 4