ch4-3 数值的机器运算-定点除法_第1页
ch4-3 数值的机器运算-定点除法_第2页
ch4-3 数值的机器运算-定点除法_第3页
ch4-3 数值的机器运算-定点除法_第4页
ch4-3 数值的机器运算-定点除法_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

第4章数值的机器运算

1被除数x,其原码为[x]原=xf.xn-1…x1x0除数y,其原码为[y]原=yf.yn-1…y1y0

则有商q=x/y,其原码为[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)•商的符号运算qf=xf⊕yf

与原码乘法一样;•商的数值部分的运算,实质上是两个正数求商的运算。与乘法一样要解决运算器位数和余数寄存器位数两个问题。设有n位定点小数:4.5.1原码一位除法24.5.1原码一位除法

X=0.1011,Y=0.1101

0.1101…商0.11010.10110x被除数

1101

x>y除数右移一位,减除数

10010r11101x>y除数右移一位,减除数

10100r21101x>y除数右移两位,减除数

111r4余数

X÷Y=商+=0.1101+0.0111×2-4/0.11010.00.0

0.000.0000.00000.00000余数除数1.手算运算步骤34.5.1原码一位除法1、比较法4结果与手算相同,但余数不是真正的余数,多乘了2n,故正确的余数应为2-n×rn,即:0.000000010.0001第四次余数r4

1.0010被除数左移一位,2x>y,商1+1.0101减y,即+[-y]补0.0111第一次余数r1

0.1110r1左移一位,2r1>y,商1+1.0101减y0.0011第二次余数r2

0.0110r2左移一位,2r2<y,商0

0.1100r3左移一位,2r3=4r2>y,商1+1.0101减y0.10110.1001x<y,商00.1101例:x=0.1001,y=0.1011,求x/y=?[-y]补=1.0101562.恢复余数法72.原码除法—恢复余数法取绝对值相除,两个符号位。被除数减除数,够减时,商1;不够减时商0。减法用加法代替,加[-y]补(结果仍是原码)。不够减时需要恢复余数(加除数)。余数要乘2-n(右移n位)【例1】x=0.1001,y=0.1011,用恢复余数法求x/y.

解:[x]原=[x]补=x=0.1001,[y]补=0.1011,[-y]补=1.01018

00.1001+[-y]补

11.0101x减y11.1110余数r0<0,商“0”+[y]补

00.1011恢复余数

00.1001r0’

01.00100

商0移入q,r0’左移

+[-y]补

11.0101减y00.0111r1>0,商“1”

00.11100.1商1移入q,r1左移

+[-y]补

11.0101减y00.0011r2>0,商“1”

00.01100.11商1移入q,r2左移

+[-y]补11.0101减y11.1011r3<0,商“0”

+[y]补00.1011恢复余数

00.0110r3’=2r2

00.11000.110商0移入q,r3’左移

+[-y]补

11.0101减y00.0001r4>0,商“1”

00.00010.1101商1移入q,r4不左移

被除数x/余数r商q说明[x]原=0.1001[y]补=0.1011[-y]补=1.0101011019故:[q]原=0.1101余数[r4]原=0.00000001恢复余数法由于要恢复余数,使得除法的步数不固定,控制比较复杂。且在恢复余数时,要多作一次加法,降低了执行速度。103.加减交替法

特点:当运算过程中出现不够减的情况,不必恢复余数,而是根据余数的符号,继续往下运算,因此步数固定,控制简单。运算规则:采用绝对值、用双符号位进行计算。

当余数为正时,商1,余数左移一位,减除数;当余数为负时,商0,余数左移一位,加除数。若最后一步的余数为负,要得到正确的余数,还要恢复余数【例2】x=0.1001,y=0.1011,用加减交替法求x/y.

解:[x]原=[x]补=x=0.1001,[y]补=0.1011,[-y]补=1.010111=?12

00.1001+[-y]补

11.0101x减y11.1110余数r0<0,

11.11000商0,r和q左移一位

+[y]补

00.1011加y00.0111余数r1>000.11100.1商1,r和q左移一位+[-y]补

11.0101减y00.0011余数r2>0

00.0110

0.11商1,r和q左移一位

+[-y]补

11.0101减y11.1011余数r3<0

11.0110

0.110商0,r和q左移一位

+[y]补

00.1011加y00.0001余数r4>0

0.1101商1,仅q左移一位被除数x/余数r商q说明得:q=x/y=0.1101余数r=2-4r4=0.00000001[x]原=0.1001,[y]补=0.1011,[-y]补=1.0101134.5.1

原码除法运算原码除法器的实现:1、软件实现

除法运算需要3个寄存器:

A寄存器:存放被除数X,最后A寄存器中剩下的是扩大了若干倍的余数。运算过程中A寄存器的内容将不断地发生变化。

B寄存器:存放除数Y。

C寄存器:存放商Q,它的初值为0。2、硬件实现144.5定点除法运算4.5.2补码除法运算

被除数和除数都用补码表示,符号位参加运算。1.够减的判断参加运算的两个数符号任意,够减的情况如下:⑴同号X>0,Y>0,X-Y>0X<0,Y<0,-X-(-Y)>0X-Y<0⑵异号X>0,Y<0,X-(-Y)=(X+Y)>0X<0,Y>0,(-X)-Y>0X+Y<0>><<><><部分余数与除数同号部分余数与除数同号部分余数与除数异号部分余数与除数异号154.5定点除法运算2.上商规则如果[X]补和[Y]补同号,则商为正数,上商规则与原码除法相同,即够减时上商“1”,不够减时上商“0”;如果[X]补和[Y]补异号,则商为负数,上商规则与同号时相反,即够减时上商“0”,不够减时上商“1”。

将上商规则与够减的判断结合起来,可得到本次余数[ri]补和除数[Y]补同号,商上“1”,反之,商上“0”。

164.5定点除法运算3.商符的确定

商符是在求商的过程中自动形成的,按补码上商规则,第一次得出的商,就是实际应得的商符。4.求新部分余数求新余数[ri+1]补的通式如下:

[ri+1]补=2[ri]补+(1-2Qi)×[Y]补

Qi表示第i步的商。若商上“1”,下一次操作为余数左移一位,减去除数;若商上“0”,下一次操作为余数左移一位,加上除数。5.末位恒置1174.5定点除法运算补码加减交替除法规则:[X]补与[Y]补第一次操作[ri]补与[Y]补上商求新余数[ri+1]补的操作同号[X]补-[Y]补①同号(够减)1[ri+1]补=2[ri]补-[Y]补②异号(不够减)0[ri+1]补=2[ri]补+[Y]补异号[X]补+[Y]补①同号(不够减)1[ri+1]补=2[ri]补-[Y]补②异号(够减)0[ri+1]补=2[ri]补+[Y]补18若被除数与除数同号,被除数减去除数;若被除数与除数异号,被除数加上除数。(2)余数和除数同号,商1,余数左移一位,下次减除数;余数和除数异号,商0,余数左移一位,下次加除数。(3)重复步骤(2),连同符号位在内,共做n+1步。1.补码加减交替算法

补码除法的被除数、除数用补码表示,符号位和数位一起参与运算,商的符号位与数位由统一的算法求得。补码一位除法19

11.0111

[x]补,[y]补异号+[y]补

00.1101加除数

00.0100余数和除数同号

00.10001左移一位,商1

+[-y]补

11.0011减除数

11.1011余数和除数异号11.011010左移一位,

商0

+[y]补

00.1101加除数

00.0011余数和除数同号

00.0110

101左移一位,商1

+[-y]补

11.0011减除数

11.1001

温馨提示

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

评论

0/150

提交评论