暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【面试题】不利用中间变量,转换两个int值

Ijiran的编程思维 2019-06-28
266

当有两个int值,a和b;将它们的值调换,通常会使用到中间变量,来进行过渡调换。

那么如果不使用中间变量呢?面试中常常会问到这个问题。


我们在看代码之前,先来回忆一下Java中的异或(^);

异或的作用在于,使用时变量的值相同时得0,不同时得1;注意,是二进制!


来看看代码吧,为了方便直接看到效果,我直接将结果转成了二进制。


运行结果:


来一步步的看一下吧,

  1.  a=5(101) ;  b=9(1001)

  2.  a ^ b ;  a=1100; b=1001

  3.  a ^ b ;  a=1100; b=101(5)

  4.  a ^ b ;  a=1001; b=101(5)




依照这个方式,就可以不利用中间变量,也可转换两个int值了。





按识别二维码,了解更多





文章转载自Ijiran的编程思维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论