异或运用--不借助第三个变量交换两个变量的值

        在面试的时候经常遇到这样的题目:不借助第三个变量交换两个变量的值。今天在这里来详细分解以下这个题目。


int a=4;

int b=5;


声明两个整型变量a,b。计算出其二进制分别为a:0100,b:0101。下面开始正式计算


(1)a=a^b;

0100

^

0101

-----------------------

0001


此时a:0001,b不变(b:0101)。


(2)b=a^b;

0001

^

0101

----------------------

0100


此时a:0001,b:0100(即b的值为4)


(3)最后一步: a=a^b;

0001

^

0100

---------------

0101


此时a:0101,b:0100,转换二进制为十进制得到a=5,b=4;











本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1921903,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值