定点数加减法_第1页
定点数加减法_第2页
定点数加减法_第3页
定点数加减法_第4页
定点数加减法_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定点数加减法第一页,共三十九页,2022年,8月28日在用原码进行加减运算时,计算机实际操作是加还是减取决于指令中的操作码和两个操作数的符号;运算结果的符号判断也较复杂。因此这种方法很少使用。第二页,共三十九页,2022年,8月28日(2)补码加减运算①补码加法运算

[X

]+[Y]=[X+Y]②补码减法运算[X–Y]=[X+(-Y)]=[X]+[-Y]第三页,共三十九页,2022年,8月28日1.补码加法运算公式:[x+y]补=[x]补+[y]补以模为2定义的补码为例,分四种情况证明该式的正确性(纯小数)第四页,共三十九页,2022年,8月28日①

设x>0,y>0,则x+y>0由补码定义,[x]补=x,[y]补=y,所以[x]补+[y]补=x+y=[x+y]补②x<0,y<0,则(x+y)<0由补码定义,[x]补=2+x,[y]补=2+y[x]补+[y]补=2+x+2+y=2+(2+x+y),由于x+y为负数,其绝对值又小于1,所以(2+x+y)就一定是小于2大于1的数,上式等号右边的2必然丢掉,又由于x+y<0,所以[x]补+[y]补=(2+x+y)=2+(x+y)=[x+y]补第五页,共三十九页,2022年,8月28日③x>0,y<0[x]补=x,[y]补=2+y,[x]补+[y]补=x+2+y有两种情况A:当(x+y)≥0时,模2丢掉,又因为(x+y)≥0,所以[x]补+[y]补=2+x+y=x+y=[x+y]补B:当(x+y)<0时,有:[x]补+[y]补=2+x+y=[x+y]补④x<0,y>0情况与③类似。第六页,共三十九页,2022年,8月28日2.补码的减法运算公式[x–y]补=[x+(–y)]补=[x]补+[–y]补只要证明[–y]补=–[y]补,上式即得证。证明如下:第七页,共三十九页,2022年,8月28日由于[x+y]补=[x]补+[y]补,可得①[y]补=[x+y]补–[x]补,又[x–y]补=[x+(–y)]补=[x]补+[–y]补,同理可得②[–y]补=[x–y]补–[x]补①+②得[–y]补+[y]补=[x–y]补–[x]补+[x+y]补–[x]补=[x–y]补+[x+y]补–[x]补–[x]补=[x–y+x+y]补–[x]补–[x]补=[2x]补–2[x]补=0从而有[–y]补=–[y]补[mod2]只要求得[–y]补,就可以变减法为加法,已知[y]补,求[–y]补的法则是:对[y]补各位(包括符号位)取反,然后在末位加上1,就可以得到[–y]补。第八页,共三十九页,2022年,8月28日③补码运算规则根据以上讨论,可将补码加减规则归纳如下:

参加运算的操作数用补码表示。 符号位参加运算。 若指令操作码为加,则两数直接相加;若操作码为减,则将减数连同符号位一起变反加1后再与被减数相加。 运算结果用补码表示。【例3-3】[X]=00110110,[Y]=11001101,求[X+Y],[X-Y]。第九页,共三十九页,2022年,8月28日(3)溢出判别在什么情况下可能产生溢出?例:设定点整数字长8位,补码表示(最高位为符号位),表示范围为-128127,运算结果超出此范围就发生溢出。

第十页,共三十九页,2022年,8月28日0001111100001101(1)31+13=44001011000111111101000001(3)63+66=129100000011100000110111110(4)-63+(-66)=-12901111111正溢负溢(2)-31+(-12)=-43111000011111010011010101第十一页,共三十九页,2022年,8月28日①采用一个符号位判断溢出=S+AB②采用最高有效位的进位判断溢出=C+C=CC③采用变形补码判断(双符号位)用S、Sn分别表示结果最高符号位和第2符号位

溢出=SS两正数相加结果为负或两负数相加结果为正,则溢出符号位产生的进位与最高有效位产生的进位情况不同,则溢出01:结果正溢10:结果负溢第十二页,共三十九页,2022年,8月28日第十三页,共三十九页,2022年,8月28日第十四页,共三十九页,2022年,8月28日第十五页,共三十九页,2022年,8月28日第十六页,共三十九页,2022年,8月28日第十七页,共三十九页,2022年,8月28日3.定点数乘除运算(1)无符号整数一位乘法计算机中的乘法运算采用的方法是:将n位乘转换为n次“累加与移位”,即每一步只求一位乘数所对应的新部分积,并与原部分积作一次累加,然后右移一位。

第十八页,共三十九页,2022年,8月28日右图是无符号整数一位乘的算法流程图。图中使用了3个寄存器A、B和C。

B用来存放被乘数;

C存放乘数;

A初值为0,然后存放部分积,最后存放乘积高位。由于乘数每乘一位该位代码就不再使用,因此用A和C寄存器联合右移以存放逐次增加的部分积,并且使每次操作依据的乘数位始终在C的最低位。乘法完成时,A与C存放的是最后乘积,其中C的内容是乘积的低位部分。

第十九页,共三十九页,2022年,8月28日实现无符号整数一位乘法的硬件原理框图如下图所示。

图中,用进位触发器Ca保存每次累加暂时产生的进位,它的初值为0。在被乘数送入B、乘数送入C,A和Ca被置0后,控制逻辑控制乘法进入第1个节拍,这时由乘数位C0产生“加B/不加”(不加相当于加0)信号,用以控制被乘数B是否与上次部分积相加产生本次部分积,然后Ca、A、C一起右移一位。重复n个节拍的操作后所得到的乘积存放在A和C中。第二十页,共三十九页,2022年,8月28日【例3-10】1101*1011的运算过程如图所示。第二十一页,共三十九页,2022年,8月28日第二十二页,共三十九页,2022年,8月28日例2.13设x=–0.1101,y=–0.1011,求[x×y]原=?第二十三页,共三十九页,2022年,8月28日上一例在演算时也可以先计算两小数的小数部分,算完小数部分积后再考虑积的的小数部分位数,添上小数点。第二十四页,共三十九页,2022年,8月28日定点除法运算第二十五页,共三十九页,2022年,8月28日遇到的问题第二十六页,共三十九页,2022年,8月28日(2)无符号整数一位除法在计算机中实现除法运算,着重要解决如何判断够减与否的问题,可以用以下两种办法:①用逻辑线路进行比较判别,又叫做比较法。将被除数或余数减去除数,如果够减就执行一次减法并商1,然后余数左移一位;如果不够减就商0,同时余数左移一位。这种方法的缺点是增加硬件代价。②直接做减法试探,不论是否够减,都将被除数或余数减去除数。若所得余数符号位为0(即正)表明够减,上商1;若余数符号位为1(即负)表明不够减,由于已做了减法,因此上商0并加上除数(即恢复余数);然后余数左移一位再做下一步。这就是恢复余数法。

第二十七页,共三十九页,2022年,8月28日第二十八页,共三十九页,2022年,8月28日第二十九页,共三十九页,2022年,8月28日通过分析恢复余数法可以发现:当余数A为正时,上商1,下一步A左移一位再减除数B,相当于执行2A-B的运算;若余数A为负,上商0,并加除数以恢复余数即A+B,下一步左移一位减去除数B,这实际相当于执行2(A+B)-B=2A+B故在出现不够减时,并不需要恢复余数,只是下一步要进行2A+B的操作,因此称为不恢复余数法或加减交替法。其算法流程如右图所示。图中使用3个寄存器A、B和C。运算开始时,n位除数存放在B中,2n位被除数存放在A和C寄存器中。除法完成后商放在C寄存器中,余数放在A寄存器中。从图中可以看出,在重复n-1次操作后,如果A中的余数为负,需要恢复余数做A+B。这一步是必需的,因为最后的寄存器A中应获得正确的正余数。

第三十页,共三十九页,2022年,8月28日第三十一页,共三十九页,2022年,8月28日【例3-11】用不恢复余数法计算00001000÷0011。解:A、C:00001000;B:0011;[-B]补:1101。其运算过程如右图。第三十二页,共三十九页,2022年,8月28日第三十三页,共三十九页,2022年,8月28日第三十四页,共三十九页,2022年,8月28日例x=+0.1001y=-0.1011求[x/y]原第三十五页,共三十九页,2022年,8月28日3.2.3浮点数运算方法1.浮点数加减运算设有两个浮点数:X=Mx·,Y=My·。要实现X+Y的运算,需要以下4个步骤才能完成。①对阶操作

对阶的规则是:阶码小的数向阶码大的数对齐②实现尾数的加(减)运算③结果规格化和溢出判断a.左规b.右规若运算结果是非规格化的数,例如尾数是11.1x…x或00.0x…x形式,就需要将尾数左移,每左移一位,阶码减1,直至满足规格化条件为止(即尾数最高有效位的真值为1,或尾数符与最高有效位不等),这个过程称为左规。在左规的同时应判断结果是否会下溢,即阶码小于所能表示的最小负数。若运算结果尾数发生溢出,例如尾数为10.xx…x或01.xx…x形式,这并不表明浮点结果会溢出,此时需调整阶码,将尾数右移一位,阶码加1,称为右规。右规时,应判断结果是否会上溢,即阶码大于所能表示的最大正数。④舍入操作恒舍法,恒进法,0舍1进法为什么不是阶码大的数向阶码小的数对齐?第三十六页,共三十九页,2022年,8月28日下面举一个浮点加的实例。【例3-12】设有两个浮点数X=20.1101012,Y=2(-0.101011)2。阶码尾数[X]浮=11,10;00.110101[Y]浮=11,11;11.010101①对阶[E]=[EX]+[-EY]=1110+0001=1111,即E=-1,将MX右移一位,其阶码加1,得

=11,11;00.011011(用0舍1入法)②尾数求和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论