public class Operator { public static void main(String[] args) {
int a=10;
int b=20;
System.out.println("a:"+a+" b:"+b);
//方法一:使用第三方变量(适用于开发中用)
int c=a;
a=b;
b=c;
System.out.println("a:"+a+" b:"+b);
//方法二 位异或实现(面试)
/*
* 9^2=11,11^2=9
^符号是位逻辑运算符里的按位异或,只有在两个比较的位不同时结果是1,否则为0.
分析:
9 二进制:1 0 0 1
2 二进制:0 0 1 0
9^2 结果: 1 0 1 1 转换为十进制:8+2+1=11
*/
a=a^b;
b=a^b;//a^b^b=a
a=a^b;//a^b^a=b
System.out.println("a:"+a+" b:"+b);
//方法三
b=(a+b)-(a=b);
System.out.println("a:"+a+" b:"+b); }}