您的位置:首页 > 其它

替换a b 的值,不借助过度变量(两值相互替换不借助中间变量)

2016-06-07 10:09 681 查看
说明 :   一个数异或同一个数两次,结果还是那个数。利用的就是这个原理。

再深入说:

^是位异或逻辑预算。
比如a = 1, b = 2;
a = a^b; → a =1^2; → a =0001^0010(这里把十进制的1和2换成二进制);→ a = 0011(0001和0010对应位相同时为假(即0),不同时为真(即1)) = (此时换算成十进制)3 ;
根据以上方法:
b = a^b; → b = 3^2; → b = 0011^0010 = 0001=1;
a = a^b; → a = 3^1; → a = 0011^0001 = 0010 =2;
现在就是a = 2,b = 1;了

第二个方法

int a = 3;
int b= 5;
a = a+b;
System.out.println("a=1="+a);
b = a-b;
System.out.println("b=2="+b);
a = a-b;
System.out.println("a=3="+a);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: