|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 交换两个数字,不引入第三个变量的方法
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
5374
人关注过本帖
标题:
交换两个数字,不引入第三个变量的方法
只看楼主
加入收藏
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
11
楼
收藏
得分:0
哦?我试试看……
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 12:29
举报帖子
使用道具
赠送鲜花
sunkaidong
来 自:南京师范大学
等 级:
贵宾
威 望:
12
帖 子:4496
专家分:141
注 册:2006-12-28
第
12
楼
收藏
得分:0
好像是像燕子说的那样。。。哦也看错了。。什么时候要在看看汇编。。。放了都3年了。。
学习需要安静。。海盗要重新来过。。
2008-06-24 12:32
举报帖子
使用道具
赠送鲜花
VxWorks
来 自:WindRiver
等 级:
论坛游民
威 望:
6
帖 子:859
专家分:68
注 册:2007-11-24
第
13
楼
收藏
得分:0
写成这个形式:
template<class Type>
inline swap(const Type &x, const Type &y)
{
x+=y;
y=x-y;
x-=y;
}
只考虑内置整型的Type,要交换的两个变量是Type类型的,这个算法一定对。
至于为什么,你去看补码运算原理。
为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-06-24 12:33
举报帖子
使用道具
赠送鲜花
bianchengfeng
等 级:
新手上路
帖 子:79
专家分:0
注 册:2008-3-1
第
14
楼
收藏
得分:0
我晕
一段简单的代码
被说的连我自己都看不懂了
呵呵
o(∩_∩)o...
2008-06-24 12:33
举报帖子
使用道具
赠送鲜花
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
15
楼
收藏
得分:0
哦,我想明白了……
x+=y;
y=x-y;
x-=y;
假设第一条指令溢出,那么x=(x+y)-2^32;
那么第二条指令变成 (x+y)-2^32-y=x-2^32。
第三条变成(x+y)-2^32-(x-2^32)=y
因为2^32超过整数范围,加减无影响,所以对结果无影响……
大意了大意了……
不过,还是不玩这种东西的好,与其这样,不如多个临时变量……
我还得去易码把我原来的发言改回来- -那里居然没人发现这个东西是正确的……
最后赞一下LZ的研究精神,是自己发现的么?
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 12:33
举报帖子
使用道具
赠送鲜花
野比
等 级:
贵宾
威 望:
24
帖 子:1627
专家分:516
注 册:2007-5-24
第
16
楼
收藏
得分:0
异常只是高级语言的东西,ASM 没有所谓的异常。
2008-06-24 12:34
举报帖子
使用道具
赠送鲜花
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
17
楼
收藏
得分:0
话说,其实不需要看补码运算原理……虽然看了的确有帮助……
多年浸淫计算机,我的思想已经完全转化为补码二进制式的了- -
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 12:34
举报帖子
使用道具
赠送鲜花
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
18
楼
收藏
得分:0
回复 20# 野比 的帖子
上面有人说异常么?
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 12:36
举报帖子
使用道具
赠送鲜花
野比
等 级:
贵宾
威 望:
24
帖 子:1627
专家分:516
注 册:2007-5-24
第
19
楼
收藏
得分:0
没有,因为你用add溢出来驳lz,所以我插一句罢了
2008-06-24 12:37
举报帖子
使用道具
赠送鲜花
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
20
楼
收藏
得分:0
额……事实上,add溢出,也就是个标志位的问题
算上OF,其实根本就不会溢出- -
顺带说说,溢出不算异常……
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 12:39
举报帖子
使用道具
赠送鲜花
37
2/4页
1
2
3
4
快速回复:
交换两个数字,不引入第三个变量的方法
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.033404 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved