解释下这个问题。a=10,b=15,在不用第三方变量的前提下,把a,b的值互换(需要代码最短)

答案:a^=b^=a^=b;异或出来的结果不是1就是0啊,那a怎么变成15呢... 答案:a^=b^=a^=b;

异或出来的结果不是1就是0啊,那a怎么变成15呢
展开
 我来答
geniepengsz
2014-09-26 · TA获得超过2万个赞
知道大有可为答主
回答量:1.2万
采纳率:97%
帮助的人:2263万
展开全部
a=10=0x0a=00001010b(在内存或计算机处理数据时),
b=15=0x0f=00001111b(在内存或计算机处理数据时)
所以,在a^=b^=a^=b;执行计算时,
先执行:a^=b(最右边),即a=a^b=00001010b^00001111b=00000101b=0x05
再执行:b^=a(中间),即b=b^a=00001111b^00000101b=00001010b=0x0a=10
再执行:a^=b(最左边),即a=a^b=00000101b^00001010b=00001111b=0x0f=15
故达成目标。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式