| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:请教一道竞赛题,我想了很久没想明白~
只看楼主 加入收藏
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
请教一道竞赛题,我想了很久没想明白~


如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。试填写缺失的代码。

    a = a ^ b;

    b = _________;

    a = _________;

 

答案:

a ^ b

a ^ b

为什么???怎么都是a ^ b??
搜索更多相关主题的帖子: 竞赛题 
2012-12-11 19:19
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
是可以不用中间变量交换值,但是好像不是这个方法。。。这个也看得我头痛。。。
a=a+b;
b=a-b;
a=a-b;

有心者,千方百计;无心者,千难万难。
2012-12-11 19:49
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
收藏
得分:0 
2 ^ 3 =8
8 ^ 3 = 512
你确定这是答案?
2012-12-11 21:13
邱威
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:136
专家分:351
注 册:2012-3-28
收藏
得分:0 
难道不懂a ^ b ?
2012-12-11 22:59
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:5 
比如:a = 9, b = 10
a的二进制:1001
b的二进制:1010
Step 1: a = a ^ b : a = 0011, b = 1010
Step 2: b = a ^ b : a = 0011, b = 1001
Step 3: a = a ^ b : a = 1010, b = 1001 (交换了)

My life is brilliant
2012-12-11 23:39
sdaqdly
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-8-12
收藏
得分:0 
B=A^ B=A^ B^ B=A
A=A^ B^ A=B
2012-12-12 16:11
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
收藏
得分:0 
二进制的异或运算

马马虎虎 不吝赐教 我是路过蹭分滴
2012-12-12 22:08
wkz2012
Rank: 4
等 级:业余侠客
帖 子:123
专家分:253
注 册:2012-12-13
收藏
得分:0 
6楼正解

我了个去的编程!
2012-12-13 15:06
westjoe
Rank: 1
等 级:新手上路
帖 子:7
专家分:6
注 册:2012-12-6
收藏
得分:0 
六楼解,假设其中2的二进制是10,5是101,第一步a=a^b等于10+101,其中位数相同的取0,不同取1;这样转回十进制就是7,以此类推,下面的b就是原来的a,a就是原来的b
2012-12-13 22:23
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
收藏
得分:0 
原来是用二进制啊~谢谢啦!
2012-12-18 14:37
快速回复:请教一道竞赛题,我想了很久没想明白~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011786 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved