| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1015 人关注过本帖
标题:of溢出问题
只看楼主 加入收藏
a261935348
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2012-5-27
收藏
得分:0 
回复 7楼 powlin1991
其他几个都没问题和答案一样了 但是第二个好像有点问题 你看看
98H   10011000 负数取反 01100111 取补 01101000 = 68H 为-104
BAH   10111010 负数取反 01000101 取补 01000101 = 46H 为-70

加起来 为-174 那么没有超过-178 怎么OF是1呢?不是应该是0吗?还是我哪里算的有问题?
2012-05-29 09:33
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
下面这个是我在网上看的貌似有点明白了 CF 和 OF 别混了。
程序代码:
当CPU执行指令,进行二进制数字的运算的时候,CPU是不管参加运算的数字是“有符号数”还是“无符号数”,CPU同时给出CF、OF以及其它标志位。
最高位出现了进位,即超过了8位,则进位标志CF=1。
而溢出标志,要看高两位的进位,相同则OF=0。
----
如果FC和5这两个数,是无符号数,那么就不用关心溢出的问题。
这次运算,代表了:252 + 5 = 1 + CF = 1 +  256 = 257
----
如果FC和5这两个数,是有符号数,那么就不用关心进位的问题。
这次运算,代表了:(-4) + (+5) = +1        OF= 0,结果正确
==================
追问:我想不明白的是,FCh和5h的二进制值相加的结果是100000001,结果是九位的,不是超过了8位的表示范围了吗??为什么这样就不算是溢出呢?
----
结果是九位的!这不明显就是““进位””吗,怎么会联系到““溢出””呢?
楼主可以透露一下你的想法吗?
只有数字是有符号数的时候,才讨论溢出。
如果是无符号数,8位数字的范围是0~255,运算结果是九位数257,只是有进位,CF=1;
如果是有符号数,8位数字的范围是-128~+127,现在的结果是+1,所以,OF=0。
只有当结果数字超过了-128~+127,才是溢出,而不管它是否为九位数。 







            
————
我用双高位法算了下。
87H + 79H  =
 10000111
+01111001  最高位进位是1, 次高位进位是 1 而 1 XOR 1 = 0 , 所以 OF = 0.

98H + BAH  =
 10011000
+10111010  最高位进位是1, 次高位进位是 0 而 1 XOR 0 = 1 , 所以 OF = 1.

46H + 54H =
 01000110
+01010100  最高位进位是0, 次高位进位是 1 而 0 XOR 1 = 1 , 所以 OF = 1.

FFH + EEH =
 11111111
+11101110 最高位进位是1, 次高位进位是 1 而 1 XOR 1 = 0 , 所以 OF = 0.

换成两种方式讨论 8位二进制码是无符号数 数据形式表示范围是 0 - 255
那么 87H + 79H  = 135 + 121 =1 + 255 =  256 > 255  进位标志 CF = 1. 溢出标志 OF = 0 (因为1在 -128 -127之间)
同理下面个在做无符号相加时 只对CF产生影响 OF 不会变的。
如果做有符号处理
87H + 79H  = -121 + 121 = 0 在-128 - 127之间 所以 OF = 0 没溢出 而CF 不可能改变的 因为即使 127 + 127 也只
等于 254 < 255. 下面三个同理。
 




[ 本帖最后由 有容就大 于 2012-5-29 11:05 编辑 ]
收到的鲜花
  • a2619353482012-05-29 12:08 送鲜花  3朵   附言:完全明白了

梅尚程荀
马谭杨奚







                                                       
2012-05-29 10:53
a261935348
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2012-5-27
收藏
得分:0 
回复 12楼 有容就大
谢谢 终于懂了 !
2012-05-29 12:07
jojo520
Rank: 1
等 级:等待验证会员
帖 子:2
专家分:0
注 册:2012-6-6
收藏
得分:0 
答案还是以二楼的为准。
2012-06-06 13:45
快速回复:of溢出问题
数据加载中...
 
   



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

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