资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2.2 定点加法、减法运算,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检验方法 2.2.4 基本的二进制加法减法器,2.2.1 补码加法,补码加法的公式是 x补+y补= + 补 在模2n+1意义下,任意两数的补码之和等于该两数之和的补码,2.2.1 补码加法(续1),0,0,则0。 相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得: x补+ y补=+=+补 (mod 2n+1),分四种情况来证明:,2.2.1 补码加法(续2),0,0,则0或0时: 故 x补 y补=+补 (mod 2n+1 ) 当x+y0时: 2n+1 +(x+y) 2n+1 ,又因(x+y)0, 故 x补 y补 2n+1 () =+补 (mod 2),2.2.1 补码加法(续3),0,则0或 0。 这种情况和第2种情况一样,把和的位置对调即得证。,2.2.1 补码加法(续4),0,0,则0。 相加两数都是负数,则其和也一定是负数。 x 补 2n+1 , y 补 2n+1 x 补 y 补 2n+1 2n+1 = 2n+1 (2n+1 ) x 补 y 补 2n+1 () =+ 补 (mod 2),在模2n+1意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础,其结论也适用于定点小数。,2.2.1 补码加法(续5),例11:+1001,+0101, 求。 解: 例12:1011,-0101, 求 解:,由以上两例看到,补码加法的特点: 一是符号位要作为数的一部分一起参加运算 二是要在模2n+1的意义下相加,即超过模的进位要丢掉。,例11之解,x 补01001, y 补00101 x 补 01001 y 补00101 + 补 01110 所以 1110,返 回,例12之解,x 补01011, y 补11011 x 补 01011 y 补11011 + 补 100110 所以 00110,返回,2.2.1 补码减法,补码减法的公式是 - 补 = x补-y补 = x补+-y补 (2.14),证明:-Y补=-Y补(mod 2n+1) (2.17),因为 X+Y补=X补+Y补 (mod 2n+1) 所以 Y补=X+Y补-X补又因为 X-Y补=X+(-Y)补= X补+-Y补所以 -Y补=X-Y补-X补则 -Y补+Y补=X-Y补+X+Y补-X补-X补 = X+Y+X-Y补 -X补-X补 =0所以 -Y补=-Y补 (mod 2n+1),从y 补求-y 补的法则是:,对补包括符号位在内“按位求反且最末位加1”,即可得到-补。 写成运算表达式,则为: -补补 (2.18),表示对补作包括符号位在内的按位求反操作,表示最末位的1,2.2.2 补码减法(续1),例13:已知11110,21101, 求: x1 补 ,-x1 补 ,x2补 ,-x2 补。 解: 例14:1101,0110, 求。 解:,例10之解,x1补10010 - x1补x1补 20 01101000101110 x2补01101 - x2补x2补 20 100100000110011,返回,例11之解,x补01101, y补00110 -y补11010 x 补 01101 -y 补 11010 - 补 100111 所以0111,返回,2.2.3 溢出概念与检验方法,以定点小数为例: 在定点小数机器中,数的表示范围为|1. 在运算过程中如 出现大于1的现象,称为“溢出”。(这在定点机中是不允许的),机器定点小数表示,如:两个正数相加,结果为负(即:大于机器所能表示的最大正数),称为上溢。 而两个负数相加,结果为正(即:小于机器所能表示的最小负数),称为下溢。,例15 1011, 1001,求。,解: 补01011 , 补01001 补01011 补01001 补10100 两正数相加,结果为负,显然错误。(运算中出现了“上溢”),溢出概念与检测方法,例 01011, 00010, 求。,解: 补01011 , 补0.0010 补01011 补00010 补01101 两正数相加,结果无溢出,溢出概念与检测方法,例16 1101, 1011, 求。,解:补10011 补10101 补10011 补 10101 补 01000,两负数相加,结果为正,显然错误。(运算中出现了“下溢”),溢出概念与检测方法,又例 1101, 0010, 求。,解:补10011 补11110 补10011 补 11110 补 10001,两负数相加,结果为负,无 溢出。,溢出概念与检测方法,产生“溢出”的原因: 分析可知,当最高有效数值位的运算进位与符号位的运算进位不一致时,将产生运算“溢出”。,进一步结论: 当最高有效位产生进位而符号位无进位时,产生上溢; 当最高有效位无进位而符号位有进位时,产生下溢。,溢出概念与检测方法,“溢出”检测方法:,为了判断“溢出”是否发生,可采用两种检测的方法。 第一种方法:采用双符号位法, 称为“变形补码”或“模2n+2补码”,可使模2n+1补码所能表示的数的范围扩大一倍。 变形补码定义为:,溢出概念与检测方法,用同余式表示:补2n+2 下式也同样成立: 补补补,计算时: 1. 两个符号位都看作数码一样参加运算 2.两数进行以2n+2位模的加法,即最高符号位上产生的进位要丢掉。 采用变形补码后,如果两个数相加后,其结果的 符号位出现“01”或“10”两种组合时,表示发生溢出。这是因为两个绝对值小于1的数相加,其结果不会大于或等于2。所以,最高符号位所表示的是结果的正确符号。,溢出概念与检测方法,得到两数变形补码之和等于两数之和的变形补码, 补补补(mod 2n+2),例14 0.1100, 0.1000,求。,溢出概念与检测方法,解 : 补00.1100,补00.1000 补 00.1100 补 00.1000 01.0100 两个符号位出现“01”,表示已溢出,即结果大于1。上溢,又例 0.1100, 0.0001,求。,溢出概念与检测方法,解 : 补00.1100,补00.0001 补 00.1100 补 00.0001 00.1101 两个符号位 =“00”,表示无溢出。,例15 0.1100, -0.1000,求。,溢出概念与检测方法,解 : 补11.0100,补11.1000 补11.0100 补11.1000 10.1100 两个符号位出现“10”,表示已溢出,即结果小于1。下溢,又例 0.0100, -0.1000,求。,溢出概念与检测方法,解 : 补11.1100,补11.1000 补11.1100 补11.1000 11.0100 两个符号位出现“11”,表示无溢出。,溢出概念与检测方法,由此可以得出如下结论: 1. 当以模4补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。故溢出逻辑表达式为 VSf1Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或门实现。 2. 模4补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。,溢出概念与检测方法,第二种溢出检测方法:采用“单符号位法”。 从例1和例2中看到:(1).当最高有效位产生进位而符号位无进位时,产生上溢;(2).当最高有效位无进位而符号位有进位时,产生下溢。 故:溢出逻辑表达式为: VCrCo 其中: Cf为符号位产生的进位,Co为最高有效位产生的 进位。(显然:此逻辑关系可用异或门方便地实现)。 在定点机中,当运算结果发生溢出时,机器通过逻 辑电路自动检查出溢出故障,并进行中断处理。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号