Sen哥 发表于 2014-8-1 17:35:35

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

在学习过程中遇到问题

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


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


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


青玄 发表于 2014-8-2 16:31:22

1、溢出就是超出了你所指定了数据存储范围!
2、22H-FCH没有超出-128~127的范围
      00100010是十进制的34;这个没有超出
   11111100是十进制的252;这个超出范围了
      00111110是十进制的64 ;这个没有超出



小靚同学Leon 发表于 2014-8-9 13:28:53

绑定哈

上线就隐身 发表于 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表示一个正数减去一个负数,而且结果没有超出允许范围,故没有溢出;
其实,关于如何判断溢出,有没有更简单的办法,我现在还没有弄明白。但是有一些基本的,比如两个负数相加结果变成正数,那么肯定是发生了溢出;两个正数相加得到一个负数,那么肯定也发生了溢出;当然还有其他情况。如果有简单的判断是否存在溢出的方法,还请高手指教!





丝雨人 发表于 2015-5-26 21:02:34

溢出相当于第九位为1    比如 -126- 5   =-131   二进制为(1)00000011   。    你的二进制计算有问题,你看看你二进制运算结果是否错误?    不论是加法还是减法好像都得不出你的结果?
页: [1]
查看完整版本: 新人,是关于王爽老师第十一章OF的问题