您的位置:首页 > 其它

实现两个整数变量的交换

2018-03-18 22:48 281 查看
/*
* 面试题:
* 		请自己实现两个整数变量的交换
*
*
* */
public class OperatorDemo7 {

public static void main(String[] args) {
int a = 10,b = 20,c;

//c = b;//b = 20,c = 20;
//b = a;//b = 10,a = 10;
//a = c;//c = 20;a = 20;

a = a ^ b;//已知x^x = 0;x^0 = x;把b^a 赋值给a
b = a ^ b;//b = (a ^ b) ^ b = a^(b^b)=a,这里实现把a赋值给b
a = a ^ b;//a = a ^ (a ^ b),这里的b还是之前的b,也就是b=20;

//a = a + b;//a = 10+20=30
//b = a - b;//b = 30-20=10
//a = a - b;//a = 30-10=20

//b = (a+b) - (a = b);//b=10+20 - 20=10

System.out.println("a =" + a);
System.out.println("b =" + b);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: