淘宝网技术人员(Java)笔试卷

今天参加淘宝的笔试,第一道题就没做出。题目是:不使用另外的变量,交换整型变量x和y的值,假设x、y的取值范围在0-5000之间。

后面回来想了一下,觉得用移位就可以搞定:

int a =232, b = 12;

a=a<<16;

b=b|a;

a=b&0x0000FFFF;

b=b>>16;

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

 

ContractedBlock.gif移位交换x和y的值

后来在网上搜了一下有个更加简单的两个方法:

第一个:

 a= a + b;

b= a - b;

a= a - b 

第二个一条语句就可以搞定:a = b +(b = a)*0.           

 

转载于:https://www.cnblogs.com/cszjutstar/archive/2009/02/28/swap.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值