当有两个int值,a和b;将它们的值调换,通常会使用到中间变量,来进行过渡调换。
那么如果不使用中间变量呢?面试中常常会问到这个问题。
我们在看代码之前,先来回忆一下Java中的异或(^);
异或的作用在于,使用时变量的值相同时得0,不同时得1;注意,是二进制!
来看看代码吧,为了方便直接看到效果,我直接将结果转成了二进制。

运行结果:

来一步步的看一下吧,
a=5(101) ; b=9(1001)
a ^ b ; a=1100; b=1001
a ^ b ; a=1100; b=101(5)
a ^ b ; a=1001; b=101(5)
依照这个方式,就可以不利用中间变量,也可转换两个int值了。
按识别二维码,了解更多
文章转载自Ijiran的编程思维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





