| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1384 人关注过本帖
标题:交换?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:50 
交换?
有两个变量 a , b 在没有定义其他变量的情况下能交换a, b的值吗?
如果可以 怎么交换?
Z版 速度啊 呵呵
搜索更多相关主题的帖子: 交换 
2012-08-30 13:22
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
学习
2012-08-30 13:26
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
别光学习啊 可以回答下

梅尚程荀
马谭杨奚







                                                       
2012-08-30 13:29
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
a ^= b;
b = a ^ b;
a ^= b;
2012-08-30 13:30
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
^ 也就是XOR 异或 换成加减也可以 这样适用的范围大了些 但有溢出的危险

那个mad大牛曾经在C版发过一个关于这个回复 里面引了一个外国人写的东西 很好

但这些所谓的技巧其实很慢


还不如用中间变量让编译器优化呢



[ 本帖最后由 zklhp 于 2012-8-30 13:40 编辑 ]
2012-08-30 13:33
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 5楼 zklhp
我的答案就是相加 没你想的那么深 把异或运用上了 看来搞汇编后脑子里的机器思维会很强

梅尚程荀
马谭杨奚







                                                       
2012-08-30 13:38
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:3 
A=A+B;
B=A-B;
A=A-B;

无知
2012-08-30 13:38
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
a = a + b
b = a - b
a = a - b
OK

梅尚程荀
马谭杨奚







                                                       
2012-08-30 13:38
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 7楼 Artless
哈哈 就是这个 一模一样

梅尚程荀
马谭杨奚







                                                       
2012-08-30 13:39
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用有容就大在2012-8-30 13:38:20的发言:

我的答案就是相加 没你想的那么深 把异或运用上了 看来搞汇编后脑子里的机器思维会很强

相加有溢出的危险 位操作比较安全 但对于浮点数等东西不适用

浮点数倒是可以相加 但精度?
2012-08-30 13:40
快速回复:交换?
数据加载中...
 
   



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

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