一个数据对另一个数据位异或两次,该数本身不变。
int a = 10;
int b = 20;
System.out.println(a^b^b); //10
System.out.println(a^b^a); //20
交换a、b的值
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b; //a ^ b ^ b = a
a = a ^ b; //a ^ b ^ a = b
一句话搞定:
b =(a+b) - (a = b)