|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 交换两个数字,不引入第三个变量的方法
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
5374
人关注过本帖
标题:
交换两个数字,不引入第三个变量的方法
只看楼主
加入收藏
VxWorks
来 自:WindRiver
等 级:
论坛游民
威 望:
6
帖 子:859
专家分:68
注 册:2007-11-24
第
21
楼
收藏
得分:0
野比显然没有学过奔腾处理器,异常是CPU内部执行程序出错产生的程序中断。
这么多年了,很多人的思想还是8086和DOS的
为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-06-24 12:41
举报帖子
使用道具
赠送鲜花
野比
等 级:
贵宾
威 望:
24
帖 子:1627
专家分:516
注 册:2007-5-24
第
22
楼
收藏
得分:0
知道
2008-06-24 12:41
举报帖子
使用道具
赠送鲜花
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
23
楼
收藏
得分:0
额……事实上……中断和异常好像都是int……
中断是指API或者其他情况下,反正是程序主动int,也叫陷入。异常则是代码执行出错自动int转入处理语句……
很久不看Win32汇编了,不知道概念中正确否。
反正都是这些东西啦……
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 12:43
举报帖子
使用道具
赠送鲜花
hxe206
等 级:
新手上路
帖 子:4
专家分:0
注 册:2008-6-24
第
24
楼
收藏
得分:0
这样也许会更好
a=a^b;
b=a^b;
a=a^b;
2008-06-24 12:45
举报帖子
使用道具
赠送鲜花
VxWorks
来 自:WindRiver
等 级:
论坛游民
威 望:
6
帖 子:859
专家分:68
注 册:2007-11-24
第
25
楼
收藏
得分:0
IA-32处理器中,CPU执行指令触发的叫异常,CPU外部通过引脚NMI和INTR输入的中断信号叫外部中断,分别是可屏蔽和不可屏蔽中断。
除法指令会产生溢出异常,加法不会。
为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-06-24 12:48
举报帖子
使用道具
赠送鲜花
野比
等 级:
贵宾
威 望:
24
帖 子:1627
专家分:516
注 册:2007-5-24
第
26
楼
收藏
得分:0
保护模式都用得少,别说win32了,最多调细节dump的时候看看
混饭吃的人只能rad,没办法
2008-06-24 12:48
举报帖子
使用道具
赠送鲜花
VxWorks
来 自:WindRiver
等 级:
论坛游民
威 望:
6
帖 子:859
专家分:68
注 册:2007-11-24
第
27
楼
收藏
得分:0
我说的是IA-32处理器,不管你用什么OS,不管你用实模式还是保护模式,除非你用虚拟8086模拟,那里没有异常只有中断的概念。
为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-06-24 12:53
举报帖子
使用道具
赠送鲜花
野比
等 级:
贵宾
威 望:
24
帖 子:1627
专家分:516
注 册:2007-5-24
第
28
楼
收藏
得分:0
了解
2008-06-24 12:58
举报帖子
使用道具
赠送鲜花
无语雨季
等 级:
新手上路
帖 子:23
专家分:0
注 册:2008-6-19
第
29
楼
收藏
得分:0
对于变量运算溢出不容置疑是错的,对错误去辩解没有意思!
其实对于交换两个变量,最好是使用第三变量,代码效率更高;
既然这里说就是不使用第三变量,当然防止侧漏,溢出等现象,那就使用异或最为方便
main()
{
int a,b;
scanf("%d,%d",&a,&b);
a^=b;
b^=a;
a^=b;
printf("%d,%d",a,b);
}
2008-06-25 19:55
举报帖子
使用道具
赠送鲜花
flyue
来 自:江南西道
等 级:
贵宾
威 望:
19
帖 子:3465
专家分:1563
注 册:2006-6-20
第
30
楼
收藏
得分:0
我记得有一个汇编指令可以交换两个数据。
天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-25 20:13
举报帖子
使用道具
赠送鲜花
37
3/4页
1
2
3
4
快速回复:
交换两个数字,不引入第三个变量的方法
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018939 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved