第五讲-定点运算(除法)市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第1页
第五讲-定点运算(除法)市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第2页
第五讲-定点运算(除法)市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第3页
第五讲-定点运算(除法)市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第4页
第五讲-定点运算(除法)市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第五讲定点运算(除法)1/31本讲主要内容原码一位除法补码一位除法并行除法器2/31一、分析笔算除法x=–0.1011y=0.1101求x÷y0.10110.1101⌒0.011010.010010.0011010.0001010.000011010.000001111商符单独处理心算上商余数不动低位补“0”减右移一位除数上商位置不固定x÷y=–0.1101余数0.00000111商符心算求得00.101000

???3/31二.机器运算与手算不一样(1)在计算机中,小数点是固定,不能简单地采取手算方法。为便于机器操作,除数Y固定不变,被除数和余数进行左移

(相当于乘2)4/31手工算法改进算法:

结果与手算相同,但余数不是真正余数,多乘了2n,故正确余数应为2-n×rn,即:0.0000000100.0001第四次余数r4

01.0010

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

00.1110

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

00.0110

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

00.1100

r3左移一位,2r3=4r2>y,商1+11.0101减y00.101100.1001x<y,商000.1101x=0.1001,y=0.1011,[-y]补=1.01015/31(2)机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来余数,方便再继续往下运算。这种方法称为恢复余数法。要恢复原来余数,只要当前余数加上除数即可。但因为恢复余数,使除法进行过程步数不固定,所以控制比较复杂。实际中惯用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则无须恢复余数,依据余数符号,能够继续往下运算,所以步数固定,控制简单。机器运算与手算不一样6/31笔算除法和机器除法比较总结笔算除法机器除法商符单独处理心算上商符号位异或形成|x|–|y|>0上商1|x|–|y|<0上商0余数不动低位补“0”减右移一位除数2倍字长加法器上商位置不固定余数左移一位低位补“0”减除数1倍字长加法器在存放器最末位上商7/31三.原码除法以小数为例[x]原=x0.x1x2

xn…[

y]原=y0.y1y2

yn…式中x*=0.x1x2

xn

为x绝对值

y*=0.y1y2

yn

为y绝对值……数值部分为绝对值相除x*y*被除数不等于0除数不能为0小数定点除法x*<y*整数定点除法x*>

y*商符号位单独处理

x0

y0[]原=(x0

y0).xyx*y*约定8/31

被除数减除数,够减时,商1;不够减时商0。因为商0时若不够减,即不能作减法,但现在在判断是否商0时,已经减了除数,为了下次能正确运算,必须把已减掉除数加回去恢复余数。这就是“恢复余数法”。(1)恢复余数法9/310.10111.00111.00111.00110.0000+[–y*]补01.1110余数为负,上商00.1101恢复余数00.1001余数为正,上商1+[–y*]补1.0110011.0010011+[–y*]补解:被除数(余数)商说明[x]原=1.1011[y]原

=1.1101①x0

y0=1

1=0②x=–0.1011

y=–0.1101求[]原

xy例2410.1011恢复后余数0+[y*]补[y*]补=0.1101[–y*]补

=1.0011逻辑左移逻辑左移++++10/310.010101余数为正,上商1被除数(余数)商说明1.00110.11011.001110.1010011+[–y*]补1.1101011

余数为负,上商0恢复余数1.010001101+[–y*]补0.01110110

余数为正,上商1=0.1101x*y*∴[]原xy=0.1101上商5次第一次上商判溢出余数为正上商1余数为负上商0,恢复余数移4次100.1010恢复后余数011

01+[y*]补逻辑左移逻辑左移+++11/31【例】x=0.1001,y=0.1011,用恢复余数法求x/y.解:[x]原=[x*]补=x=0.1001,[y*]补=0.1011,[-y*]补=1.010112/3100.1001+[-y*]补11.0101x减y*11.1110余数r0<0,商“0”+[y*]补00.1011

恢复余数00.1001r0’

01.00100商0移入q,r0’左移

+[-y*]补11.0101减y*00.0111r1>0,商“1”

00.11100.1商1移入q,r1左移

+[-y*]补11.0101减y*00.0011r2>0,商“1”

00.01100.11商1移入q,r2左移

+[-y*]补11.0101减y*11.1011r3<0,商“0”

+[y*]补00.1011

恢复余数00.0110r3’=2r2

00.11000.110商0移入q,r3’左移

+[-y*]补11.0101减y*00.0001r4>0,商“1”

00.00010.1101商1移入q,r4不左移

被除数x/余数r商q说明[x]原=0.1001[y*]补=0.1011[-y*]补=1.010113/31

余数每次左移相当于乘以2,在求得n位商后,相当于多乘了2n,所以最终余数应乘以2-n才是正确值。故:[q]原=0.1101余数[r4]原=0.00000001

14/31(2)不恢复余数法余数Ri>0上商“1”,2Ri

–y*余数Ri<0上商“0”,

Ri

+y*恢复余数2(Ri+y*)–y*=2Ri

+y*加减交替恢复余数法运算规则不恢复余数法运算规则上商“1”2Ri–y*

上商“0”2Ri+y*(加减交替法)15/31x=–0.1011y=–0.1101求[]原xy解:例250.10111.00110.11011.00111.00110.11010.0000+[–y*]补01.1110余数为负,上商01.110001+[y*]补00.1001余数为正,上商1+[–y*]补1.0010011+[–y*]补+[y*]补0.101001111.1010011010.010101余数为正,上商10.01110110余数为正,上商11.1101011余数为负,上商0[x]原=1.1011[y*]补=0.1101[–y*]补=1.0011[y]原=1.11011101逻辑左移[x*]补=0.1011逻辑左移逻辑左移逻辑左移+++++16/31①x0

y0=1

1=0②x*y*=0.1101∴=0.1101[]原xy上商n+1次例25结果特点用移位次数判断除法是否结束第一次上商判溢出移n次,加n+1次17/31例x=0.1001,y=0.1011,用恢复余数法求x/y.解:[x]原=[x*]补=x=0.1001,[y*]补=0.1011,[-y*]补=1.010118/3100.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.010119/31

余数每次左移相当于乘以2,在求得n位商后,相当于多乘了2n,所以最终余数应乘以2-n才是正确值。故:[q]原=0.1101余数[r4]原=0.0000000120/31(3)原码加减交替除法硬件配置A、X、Q均n

+1位用Qn控制加减交替

0

A

nn+1位加法器控制门0

X

n0Q

n

计数器CGD加减移位和加控制逻辑SV左移21/3122/31[Ri]补=0.1000[x]补=1.1101[y]补=1.0101四.补码除法(加减交替法)(1)商值确实定x=0.1011y=0.0011[x]补=0.1011[y]补=0.0011[x]补=0.1011[–y]补=1.1101[Ri]补=0.1000x=–0.0011y=–0.1011[x]补=1.1101[–y]补=0.1011x*>y*[Ri]补与[y]补同号“够减”x*<y*[Ri]补与[y]补异号“不够减”++①比较被除数和除数绝对值大小x与y同号23/31小结x=0.1011y=–0.0011[x]补=0.1011[y]补=1.1101[x]补=0.1011[y]补=1.1101[Ri]补=0.1000x=–0.0011y=0.1011[x]补=1.1101[y]补=0.1011[x]补=1.1101[y]补=0.1011[Ri]补=0.1000x*>y*[Ri]补与[y]补异号“够减”x*<y*[Ri]补与[y]补同号“不够减”++x与y异号[x]补和[y]补求

[Ri]补[Ri]补与[y]补同号异号[x]补–[y]补[x]补+[y]补同号,“够减”异号,“够减”24/31②商值确实定[x]补与[y]补同号正商按原码上商“够减”上“1”“不够减”上“0”[x]补与[y]补异号负商按反码上商“够减”上“0”“不够减”上“1”原码0.××××

1反码

1.××××

1末位恒置“1”法小结简化为(同号)(异号)(异号)(同号)×.××××

1[x]补与[y]补商[Ri]补与[y]补商值够减不够减够减不够减同号异号正负1001原码上商反码上商[Ri]补与[y]补商值同号异号1025/31(2)商符形成除法过程中自然形成[x]补和[y]补同号[x]补–[y]补比较[Ri]补和[y]补同号(够)“1”异号(不够)“0”原码上商小数除法第一次“不够”上“0”正商[x]补和[y]补异号[x]补+[y]补比较[Ri]补和[y]补异号(够)“0”同号(不够)“1”反码上商小数除法第一次“不够”上“1”负商26/31(3)新余数形成加减交替[Ri]补和[y]补商新余数同号异号102[Ri]补+[–y]补2[Ri]补+[

y

]补27/31

补码一位除法算法是在商末位“恒置1”舍入条件下推导,故此算法存在误差,这么引发最大误差是2-n。在对计算精度没有特殊要

温馨提示

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

评论

0/150

提交评论