import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.print("please input number a:");
long a=s.nextLong();
System.out.print("please input number b:");
long b=s.nextLong();
System.out.println("before exchange: a="+a+"\tb="+b);
//执行变量互换
a=a^b;
b=b^a;
a=a^b;
System.out.println("after exchange: a="+a+"\tb="+b);
}
}
运行结果:
please input number a:79
please input number b:80
before exchange: a=79 b=80
after exchange: a=80 b=79
异或“^”和其他位运算符并不会改变变量的值,即"a=a^b"没有意义,必须将运算结果赋值给一个变量。