鱼C论坛

 找回密码
 立即注册
查看: 1881|回复: 4

新人,是关于王爽老师第十一章OF的问题

[复制链接]
发表于 2014-8-1 17:35:35 | 显示全部楼层 |阅读模式
1鱼币
在学习过程中遇到问题

1. 到底怎么才叫溢出???


2. 设al=22H,bl=FCH
比如22H-FCH,十进制就是34-4吧,等于30,在-128~127以内,没有超出范围,那换成二进制
(1)00100010
         11111100
---------------------
(1)00111110


这样好像是溢出了,怎么回事


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-2 16:31:22 | 显示全部楼层
1、溢出就是超出了你所指定了数据存储范围!
2、22H-FCH没有超出-128~127的范围
      00100010是十进制的34;这个没有超出
     11111100是十进制的252;这个超出范围了
      00111110是十进制的64 ;这个没有超出



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-9 13:28:53 | 显示全部楼层
绑定哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-9 21:41:34 | 显示全部楼层
本帖最后由 上线就隐身 于 2014-8-9 21:47 编辑

溢出,是针对有符号数的来讲,这个是前提!
(22)16 = (34)10=(00100010)2(FC)16 = (-4)10= (11111100)2
22H-FCH表示一个正数减去一个负数,而且结果没有超出允许范围,故没有溢出;
其实,关于如何判断溢出,有没有更简单的办法,我现在还没有弄明白。但是有一些基本的,比如两个负数相加结果变成正数,那么肯定是发生了溢出;两个正数相加得到一个负数,那么肯定也发生了溢出;当然还有其他情况。如果有简单的判断是否存在溢出的方法,还请高手指教!





想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-26 21:02:34 | 显示全部楼层
溢出相当于第九位为1    比如 -126  - 5   =-131     二进制为(1)00000011     。    你的二进制计算有问题,你看看你二进制运算结果是否错误?    不论是加法还是减法好像都得不出你的结果?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表