欢迎来到天天文库
浏览记录
ID:41167800
大小:694.51 KB
页数:31页
时间:2019-08-18
《《定点运算除法》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五讲定点运算(除法)本讲主要内容原码一位除法补码一位除法并行除法器一、分析笔算除法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???二.机器运算与手算的不同(1)在计算机中,小数点是固定的,不能简单地采用手算的办法。为便于机器操作,除数Y固定不变,被除数和余数进行左移(相当于乘2)手工算法的改进算
2、法:结果与手算相同,但余数不是真正的余数,多乘了2n,故正确的余数应为2-n×rn,即:0.0000000100.0001第四次余数r401.0010被除数左移一位,2x>y,商1+11.0101减y,即+[-y]补00.0111第一次余数r100.1110r1左移一位,2r1>y,商1+11.0101减y00.0011第二次余数r200.0110r2左移一位,2r2y,商1+11.0101减y00.101100.1001x3、1(2)机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。这种方法称为恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。但由于恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。实际中常用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。机器运算与手算的不同笔算除法和机器除法的比较总结笔算除法机器除法商符单独处理心算上商符号位异或形成4、x5、–6、y7、>0上商18、x9、–10、y11、<0上商0余数不动低位补“12、0”减右移一位的除数2倍字长加法器上商位置不固定余数左移一位低位补“0”减除数1倍字长加法器在寄存器最末位上商三.原码除法以小数为例[x]原=x0.x1x2xn…[y]原=y0.y1y2yn…式中x*=0.x1x2xn为x的绝对值y*=0.y1y2yn为y的绝对值……数值部分为绝对值相除x*y*被除数不等于0除数不能为0小数定点除法x*<y*整数定点除法x*>y*商的符号位单独处理x0y0[]原=(x0y0).xyx*y*约定被除数减除数,够减时,商1;不够减时商0。由于商0时若不够减,即不能作减法,但现在在判断是否商0时,已经减了除数,为了下次能正确运算,必须把已13、减掉的除数加回去恢复余数。这就是“恢复余数法”。(1)恢复余数法0.10111.00111.00111.00110.0000+[–y*]补01.1110余数为负,上商00.1101恢复余数00.1001余数为正,上商1+[–y*]补1.0110011.0010011+[–y*]补解:被除数(余数)商说明[x]原=1.1011[y]原=1.1101①x0y0=11=0②x=–0.1011y=–0.1101求[]原xy例2410.1011恢复后的余数0+[y*]补[y*]补=0.1101[–y*]补=1.0011逻辑左移逻辑左移++++0.010101余数为正,上商1被14、除数(余数)商说明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恢复后的余数01101+[y*]补逻辑左移逻辑左移+++【例】x=0.1001,y=0.1011,用恢复余数法求x/y.解:[x]原=[x*]补=x=0.1001,[y*]补=0.1011,[-y*]补=1.010100.1001+[-y15、*]补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’=2r200.11000.110商0移入q,r3’左移+[-y*]补1
3、1(2)机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。这种方法称为恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。但由于恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。实际中常用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。机器运算与手算的不同笔算除法和机器除法的比较总结笔算除法机器除法商符单独处理心算上商符号位异或形成
4、x
5、–
6、y
7、>0上商1
8、x
9、–
10、y
11、<0上商0余数不动低位补“
12、0”减右移一位的除数2倍字长加法器上商位置不固定余数左移一位低位补“0”减除数1倍字长加法器在寄存器最末位上商三.原码除法以小数为例[x]原=x0.x1x2xn…[y]原=y0.y1y2yn…式中x*=0.x1x2xn为x的绝对值y*=0.y1y2yn为y的绝对值……数值部分为绝对值相除x*y*被除数不等于0除数不能为0小数定点除法x*<y*整数定点除法x*>y*商的符号位单独处理x0y0[]原=(x0y0).xyx*y*约定被除数减除数,够减时,商1;不够减时商0。由于商0时若不够减,即不能作减法,但现在在判断是否商0时,已经减了除数,为了下次能正确运算,必须把已
13、减掉的除数加回去恢复余数。这就是“恢复余数法”。(1)恢复余数法0.10111.00111.00111.00110.0000+[–y*]补01.1110余数为负,上商00.1101恢复余数00.1001余数为正,上商1+[–y*]补1.0110011.0010011+[–y*]补解:被除数(余数)商说明[x]原=1.1011[y]原=1.1101①x0y0=11=0②x=–0.1011y=–0.1101求[]原xy例2410.1011恢复后的余数0+[y*]补[y*]补=0.1101[–y*]补=1.0011逻辑左移逻辑左移++++0.010101余数为正,上商1被
14、除数(余数)商说明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恢复后的余数01101+[y*]补逻辑左移逻辑左移+++【例】x=0.1001,y=0.1011,用恢复余数法求x/y.解:[x]原=[x*]补=x=0.1001,[y*]补=0.1011,[-y*]补=1.010100.1001+[-y
15、*]补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’=2r200.11000.110商0移入q,r3’左移+[-y*]补1
此文档下载收益归作者所有