第三章 运算方法和运算部件(3-1,2)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机学院原稿:武大计算机学院改编:武汉东湖学院《计算机组成原理》课程小组2011.9《计算机组成原理》——武汉东湖学院本科生课程教学计算机学院计算机学院第三章运算方法和运算部件①补码和反码的加减法运算②定点数与浮点数③二进制乘法运算④二进制除法运算⑤浮点数的运算方法⑥运算器组成⑦数据校验码⑧小结与练习计算机学院计算机学院一.定点数的加减法运算(一)定点数加减法实现方案二进制加法是实现算术运算的基础,采用补码方案时,加减法可以用统一的方式处理。因此运算器的核心也就是加法器的设计。1、补码加减法运算法则1:[X]补+[Y]补=[X+Y]补两补码数相加,符号位与码值一起参加运算,符号位相加后如果有进位,则该位数字舍弃。下面分四种情况来证明上述补码加法公式:计算机学院计算机学院一.定点数的加减法运算证明条件是:|X|1,|Y|1,|X+Y|1。(1)X0,Y0,则X+Y0;两正数相加,和一定是正数,与原码相同。根据补码的定义可得此结论。[X]补=X〔Y〕=Y所以,[X]补+[Y]补=X+Y=[X+Y]补(MOD2)例,X=+0.1001,Y=+0.0101,X+Y=?[X]补01001+[Y]补0010101110补计算机学院计算机学院一.定点数的加减法运算(2)X0,Y0,则X+Y0或X+Y0;相加两数一正一负,和有正负两种可能。根据补码的定义可得:[X]补=X,[Y]补=2+Y所以,[X]补+[Y]补=X+2+Y=2+(X+Y)①当X+Y0时,2+(X+Y)2,进位2必舍弃丢失,又因为(X+Y)0,所以[X]补+[Y]补=X+Y=[X+Y]补(MOD2)②当X+Y0时,2+(X+Y)2,又因为(X+Y)0,所以[X]补+[Y]补=2+(X+Y)=[X+Y]补(MOD2)计算机学院计算机学院一.定点数的加减法运算例,X=+0.1011,Y=-0.0101,X+Y=?[X]补=0.1011,[Y]补=1.1011[X]补0.1011+[Y]补1.1011(1)0.0110所以,X+Y=0.0110(3)X0,Y0,则X+Y0或X+Y0;同(2)情况一样。计算机学院计算机学院一.定点数的加减法运算(4)X0,Y0,则X+Y0;两相加的数都是负数,则其和也一定是负数。根据补码的定义可得:[X]补+[Y]补=(2+X)+(2+Y)=2+(2+X+Y)=(2+X+Y)进位“2”丢失。又因为(X+Y)0所以,[X]补+[Y]补=2+(X+Y)=[X+Y]补(MOD2)计算机学院计算机学院1.定点数的加减法运算例,[X]补=1.0111,[Y]补=1.1011[X]补1.0111+[Y]补1.1011(1)1.0010(符号位的进位丢弃)所以,(X+Y)补=1.0010X+Y=-0.1110由此可进一步推理出:法则2:[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补(MOD2)计算机学院计算机学院一.定点数的加减法运算2、补码定点加减法运算的实现P75图3.1为实现加法的逻辑图①实现加法时应提供以下控制信号:A→ALU,B→ALU,+,ALU→A②实现减法时应提供以下控制信号:_A→ALU,B→ALU,ALU+1,+,ALU→A注意:-[y]补=[-y]补=[[y]补]补;而[[y]补]补是将[y]补连同符号位一起“求反加1”。(Y)补:Y用补码表示-(Y)补:对Y求补计算机学院计算机学院一.定点数的加减法运算3.补码加减法运算的溢出判断方法由于机器数的位数通常是给定的且是有限的(如16位字长,32位字长等),因此,数的表示范围一定是有限的,若两数进行加减运算的结果超出给定的允许取值范围,就会产生溢出。例,X=+0.1011,Y=+0.1001,X+Y=?[X]补0.1011+[Y]补0.10011.0100此时,两个正数相加的结果成为负数(符号为1),这显然是错误的,原因是产生了溢出。计算机学院计算机学院一.定点数的加减法运算又如,X=-0.1101,Y=-0.1011,X+Y=?[X]补1.0011+[Y]补1.01010.1000两个负数相加的结果成为正数(符号为0),这同样是错误的,原因也是产生了溢出。为判断溢出是否产生,可以采用两种检测方法。1)双符号位检测2)单符号位检测计算机学院计算机学院一.定点数的加减法运算方法1):变形补码(双符号位)检测方法:每个操作数在运算时都采用两个符号位,正数用00表示,负数用11表示,两个符号位与码值一起参加运算;若运算结果的两个符号位的代码不一致时表示溢出,两个符号位代码一致时,表示没有溢出。这种变形的补码表示,又称模4补码表示方法,其定义为:[X]=X0=X14+X-1=X0计算机学院计算机学院一.定点数的加减法运算例1,X=+0.1011,Y=+0.1101,用模4补码运算判断x+y是否溢出[X]补00.1011+[Y]补00.1101(溢出时最高符号位永远是正确符号)01.1000符号位代码01,表示正溢出,表明运算结果是大于允许取值范围的正数。例2,X=-0.1011,Y=-0.1100,用模4补码运算判断x+y是否溢出?[X]补11.0101+[Y]补11.010010.1001符号位代码10,表示负溢出,表明运算结果是负数,其绝对值大于允许取值范围。计算机学院计算机学院一.定点数的加减法运算方法2:单符号位检测方法:当同符号数相加运算而结果的符号与操作数的符号不一致时,表示溢出;相加运算结果的符号与操作数的符号相同时没有溢出。(当加数和被加数符号不同时,相加的结果绝对不会溢出)例1,X=+0.1001,Y=+0.1110例2,X=-0.1010Y=-0.1011[X]补0.1001(X)补1.0110+[Y]补0.1110(Y)补1.01011.01110.1011结果产生正溢出。结果负溢出————————计算机学院计算机学院一。定点数的加减法运算4.反码的加减法运算两个数的反码相加运算时,符号位的进位不能丢掉,而要将它加到和数的最低位,这称为“循环进位”。例1.X=0.1001y=-0.0110求X+Y=?解:﹝X﹞反=01001﹝Y﹞反=1100101001+)11000100010+)100011(X+Y)反=0.0011———————→——-计算机学院计算机学院一.定点数的加减法运算例2.X=-0.0101Y=-0.1000求X+Y=?解:〔X〕反=11010〔Y〕反=1011111010+)10111(1)10001+)110010(X+Y)反=1.0010=-0.1101————————--计算机学院计算机学院二.定点数与浮点数二、定点数和浮点数1、定点数1)定点小数表示方法:小数点固定在最高数值位与符号位之间,小数点不用明确表示出来。任何一个小数都可以被写成:N=Ns.N-1N-2……N-m其中,符号位用0表示正号,用1表示负号,后面m位表示该小数的数值。定点小数的值的范围很小,对用m+1个二进制位表示的小数,其值的范围|N|=1-2-m,即小于1的纯小数。数符数据|小数点↑计算机学院计算机学院二。定点数和浮点数2)定点整数表示方法:小数点固定在数值最低位右边的一种数据,最小的数为1。具有带符号和不带符号的两类。带符号的整数:N=NsNnNn-1…..N2N1N0对于n+1位二进制整数,其值范围为|N|=2n-1不带符号的整数:N=NnNn-1…..N2N1N0对于n+1为的二进制整数,其值范围为0=N=2n+1-1数符数据(整数)∣↓小数点计算机学院计算机学院二。定点数和浮点数2、浮点数表示方法:任意一个二进制数通过移动小数点的位置表示成阶码和尾数两部分,类似科学计算法。N=2E×S其中,E为N的阶码,有符号的整数;S为N的尾数,数值的有效部分,一般取二进制定点纯小数形式。例,1011101B=2+7×0.1011101101.1101B=2+3×0.10111010.01011101B=2-1×0.1011101计算机学院计算机学院二。定点数和浮点数浮点数的一般格式:E0E1…EnS0S1….Sm阶符阶码尾符尾数或者为:M0EM尾符阶码尾数例,-101.1101=-2+3×0.1011101=-0.1011101×2+3其浮点数形式为:001111011101阶码尾数(原码)计算机学院计算机学院二。定点数和浮点数阶码的表示:阶码可用原码或补码表示,但一般用移码表示;尾数的表示:尾数可用原码或补码表示,单一般用补码表示。计算机学院计算机学院二.定点数和符点数移码的概念:移码又称增码,它的表示方法:1.数值部分与补码表示相同;2.符号表示与补码表示相反,即正数用1表示,负数用0表示。因此:把[x]补的符号位取反即得[x]移。或将补码表示的符号位上增加1就是移码,因此移码又称增码。见P80例3.30计算机学院计算机学院二.定点数与浮点数移码的特点:(1)最高位为符号位,1表示正,0表示负。(2)零的移码是唯一的,即:[+0]补=[-0]补=10...0。(3)用移码表示便于比较数的大小,移码大真值就大,移码小真值就小。(4)移码表示浮点数阶码时如为全0则是最小的负数,在处理时作机器零(即整个浮点数为零)处理。计算机学院计算机学院3.2带符号数的表示及加减运算浮点数的规格化:浮点数运算后必须化成规格化形式。(1)对于原码尾数来说,应该使最高数字位S1=1,如果不是1,且尾数不是全0时就要向左移动尾数直到S1=1,阶码相应地变化,以便保证N值不变。(2)如果尾数是补码,当N是正数时S1必须是1;N是负数时S1必须是0才是规格化形式(尾数最高位与尾数符号不同)。计算机学院计算机学院3.2带符号数的表示及加减运算浮点数表示的优点:(1)浮点数表示的数据范围比定点数大;(2)运算过程中随时可对中间结果进行规格化处理,不易丢失有效数字。IEEE754标准的浮点数格式:符号位阶码尾数总位数短浮点数182332长浮点数1115264临时浮点数1156480计算机学院计算机学院例1:浮点数的表示范围浮点数的表示范围:例1:设浮点数阶码为P+1位(含1位符号),用移码表示;尾数为m+1位(含1位符号),用补码表示,基数为2。则该浮点数规格化的表示范围是:①最小正数2×2②最大正数:(1-2)×2③最小负数:-1×2④最大负数:-(2+2)×2(为什么?)-1-2P-m(2-1)P(2-1)P-m-1-2P_______________________________→∣∣∣∣∣0①②③④计算机学院计算机学院例1:浮点数的表示范围上例中,若浮点数的基数是16,则表数范围是(设K=m/4):最小正数:16×16最大正数:(1-16)×16最小负数:-1×16最大负数:-(16+16)×16-1-2P-k(2-1)P(2-1)P-1-k-2P计算机学院计算机学院IEEE754国际标准标准规定1.基数(指尾数的基数)=22.尾数用原码表示;3.阶码用移吗表示;4.尾数的最高有效位隐藏表示(即不表示)。因尾数用原码表示,规格化时最高位一定为1,表示时不表示,但在计算时要在最高位补加上隐藏的1.这样做可以让尾数多表示一位,从而使精度增加了!计算机学院计算机学院例题例题练习3.11按下列有求设计一个尽可能短的浮点数格式:1)数据范围1.0×102)有效数字为十进制七位3)0的机器数为全0±38计算机学院计算机学院练习解答解:1)数据范围主要由阶码决定,1.0×10用二进制表示近似为10=10×(10)≈2×(2)=2因此,阶码用7位再加1位符号位共8位。2)数据的有效位主要由尾数决定,十进制七位用二进制表示近似为:10=10×(10)≈2×(2)=2±38382312710121277132410224数符阶符阶码尾数︱︱︱32313

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功