新人,是关于王爽老师第十一章OF的问题
在学习过程中遇到问题1. 到底怎么才叫溢出???
2. 设al=22H,bl=FCH
比如22H-FCH,十进制就是34-4吧,等于30,在-128~127以内,没有超出范围,那换成二进制
(1)00100010
11111100
---------------------
(1)00111110
这样好像是溢出了,怎么回事
1、溢出就是超出了你所指定了数据存储范围!
2、22H-FCH没有超出-128~127的范围
00100010是十进制的34;这个没有超出
11111100是十进制的252;这个超出范围了
00111110是十进制的64 ;这个没有超出
绑定哈 本帖最后由 上线就隐身 于 2014-8-9 21:47 编辑
溢出,是针对有符号数的来讲,这个是前提!
(22)16 = (34)10=(00100010)2(FC)16 = (-4)10= (11111100)2
22H-FCH表示一个正数减去一个负数,而且结果没有超出允许范围,故没有溢出;
其实,关于如何判断溢出,有没有更简单的办法,我现在还没有弄明白。但是有一些基本的,比如两个负数相加结果变成正数,那么肯定是发生了溢出;两个正数相加得到一个负数,那么肯定也发生了溢出;当然还有其他情况。如果有简单的判断是否存在溢出的方法,还请高手指教!
溢出相当于第九位为1 比如 -126- 5 =-131 二进制为(1)00000011 。 你的二进制计算有问题,你看看你二进制运算结果是否错误? 不论是加法还是减法好像都得不出你的结果?
页:
[1]