异或运算
异或的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1
两者相等为0,不等为1。
不使用第三方变量的情况下,交换两个变量的值。
public class yihuo { public static void main(String[] args) { //不使用新的变量,交换两个变量的值 //a的值是10,二进制数是1010 //b的值是20,二进制数是10100 int a = 10; int b = 20; //输出交换之前a,b的值 System.out.println("a--->"+a); System.out.println("b--->"+b); //a是密文,二进制数是11110 a = a^b; //a赋值给b 此时b已经成了a b = a^b; //b赋值给a,此时完成了交换。 a = a^b; //输出交换之后a,b的值 System.out.println("a--->"+a); System.out.println("b--->"+b); } }
运行结果: