| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 987 人关注过本帖
标题:这怎么算呢
只看楼主 加入收藏
nieceng
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-10-13
收藏
 问题点数:0 回复次数:11 
这怎么算呢
已知以下程序段:
int a=3,b=4;
a=a^b;
b=b^a;
a=a^b;
则执行以上语句后a和b的值分别是____
搜索更多相关主题的帖子: c语言问题 
2008-10-13 16:41
ciappcia
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-6-7
收藏
得分:0 
a.b交换
2008-10-13 16:45
nieceng
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-10-13
收藏
得分:0 
可不可以解释一下呢,谢谢!
2008-10-13 16:53
kscus
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-9-13
收藏
得分:0 
这是利用的异或运算:
a=3 , b=4,分别换算成二进制则为:a=011, b=100,计算如下:
   011         100       111      
  ^100   ->   ^111  ->  ^011
   ——       ——      ——
a= 111      b= 011    a= 100,及a=4
b= 100      a= 111    b= 011,及b=3;

OK?
2008-10-13 18:18
lipeng0307
Rank: 1
来 自:辽宁
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-9-14
收藏
得分:0 
^是位的异或运算,口诀听好了~~~~~~:2个二进制数比较相同为0,不同为1,所以,运算就是做的2个数互换~

计算机是我的最爱,游戏是我的天赋,编程是我的挑战
2008-10-13 19:10
yuezhuying
Rank: 2
等 级:论坛游民
帖 子:115
专家分:10
注 册:2008-9-13
收藏
得分:0 
学习了~~~~就是说可以用它来进行交换两个整形变量的值,而且也不需要第三个量的传递。
2008-10-13 20:02
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
缺点一:只适合整型。
缺点二:相对于通常的交换代码,速度慢
缺点三:这样写会阻止编译器对通常的交换的优化(X86CPU里面有个交换指令)

所以,大家知道就好了吧,实用的时候就不要这么写了。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-13 20:15
nieceng
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-10-13
收藏
得分:0 
谢谢各位了呵呵
2008-10-13 21:44
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1687
专家分:4253
注 册:2007-12-27
收藏
得分:0 
回复 7# StarWing83 的帖子
收到
2008-10-13 21:50
燕赵幽云
Rank: 1
等 级:新手上路
帖 子:36
专家分:2
注 册:2008-10-9
收藏
得分:0 
好像XOR
2008-10-14 00:47
快速回复:这怎么算呢
数据加载中...
 
   



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

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