加减交替法 懂了007
- 格式:ppt
- 大小:1.42 MB
- 文档页数:23
补码除法(加减交替法)规则说明1. 商为正时,够减应商真值1,不够减时商真值0;商为负时,够减应商真值 -1,不够减时商真值0;2. 当[]B 补与[]A 补同号时,商Q 为正,Q 的真值与补码形式一致; 当[]B 补与[]A 补异号时,商Q 为负,Q 的真值与补码的关系除最后一位(恒为1)外,其余各位补码实际上是对应真值的反码。
3. 关于溢出,无论如何,第一为商只能是0。
假定第一位商的真值为q n -1',则余数[][][][]补补补-A q B A q B R n n '1'122--=⨯-=,若q n -1'取1(或-1)时,余数仍为真余数,则溢出。
也即:当Q 为正时,R=2[]B 补-1[]A 补=2[]B 补-[]A 补与B 同号溢出;当Q 为负时,R=2[]B 补-(-1)[]A 补=2[]B 补+[]A 补与B 同号溢出4. 当Q 为正时:* 若R 与[]A 补同号,表明R 是真余数,应商真值1,补码形式也是1;根据加减交替法,下一步为2R-[]1⨯A 补→R ,即R A R →-补][2。
* 若R 与[]A 补异号,表明R 是假余数,应商真值0,补码形式也是0;下一步为2R+[]1⨯A 补→R ,即R A R →+补][2。
5. 当Q 为负时:* 若R 与[]A 补同号,表明R 是假余数,应商真值-0,反码形式是1;根据加减交替法,下一步为 R A R →⨯-+补]1[2,即R A R →-补][2* 若R 与[]A 补异号,表明R 是真余数,应商真值-1,反码形式是0;下一步为R A R →⨯--补]1[2,即R A R →+补][26. 关于最后一位恒置1:由算法可知,最后一次减尝试可能出现够减和不够减两种情况,但不管够减和不够减,减操作已经完成,算法中并不管最后余数的恢复,所以,最后一位商的真值应为1(或-1),余数有可能是假余数。
分两种情况:* 若Q 为正,最后一位为1,与恒置1同。
计组加减交替法除法
计组加减交替法除法是一种计算机组成原理中用于实现除法运算的方法。
它的基本思想是通过反复进行加法和减法操作来逼近除法的结果。
以下是计组加减交替法除法的一般步骤:
1. 初始化:将被除数和除数放入寄存器中。
2. 比较:将除数与当前的商进行比较。
3. 加法操作:如果除数小于当前的商,则将被除数加上除数,并将结果更新为新的被除数。
4. 减法操作:如果除数大于当前的商,则将被除数减去除数,并将结果更新为新的被除数。
5. 更新商:根据上一步的操作结果,更新当前的商。
6. 重复步骤 2 至步骤 5,直到被除数的绝对值小于除数的绝对值。
通过不断重复上述步骤,计组加减交替法除法可以逐步逼近除法的精确结果。
这种方法的优点是相对简单,适用于硬件实现,并且在某些情况下可以提供足够的精度。
然而,需要注意的是,计组加减交替法除法可能会产生一定的误差,尤其在处理大数值或高精度计算时可能不够准确。
在实际应用中,可能需要根据具体需求选择更适合的除法算法或使用专门的数学库来进行更精确的除法运算。
此外,计组加减交替法除法只是计算机组成原理中多种除法实现方法之一,还有其他方法如恢复余数法、不恢复余数法等,每种方法都有其特点和适用场景。
如果你对计组加减交替法除法的具体实现细节或其他相关问题有更进一步的兴趣,我将很乐意提供更详细的信息和解释。
加、减法的速算与巧算( 基础篇 ) :---------1、加法运算定律( 2 个):☆加法互换律:两个数相加,互换加数的地点,和不变。
即: a + b = b + a ☆加法联合律:三个数相加,能够先把前两个数相加,再加上第三个数;或许先把后两个数相加,再加上第一个数,和不变。
即: (a + b) + c = a + (b + c)(提示:运用加法联合律时,要注意把联合的两个数用括号括起来。
)连加的简易计算方法:①使用加法互换律、联合律凑整(把和是整十、整百、整千的数先互换再联合在一同。
)②个位: 1 与 9,2 与 8,3 与 7,4 与 6,5 与 5,联合。
③十位: 0 与 9,1 与 8,2 与 7,3 与 6,4 与 5,联合。
连加的简易计算例题:50+98+50488+40+60165+93+3565+28+35+722、连减的性质:☆一个数连续减去几个数等于这个数减去这几个数的和。
即: a – b– c = a–(b + c)注:连减的性质逆用: a – (b + c) = a–b–c = a–c–b ☆一个数连续减去两个数,能够用这个数先减去后一个数再减去前一个数。
即: a-b-c=a—c-b连减的简易计算方法:①连续减去几个数就等于减去这几个数的和。
如:106-26-74 = 106-(26+74)②连续减去两个数能够先减去后一个数再减去前一个数。
如:226-58-26=226-26-58③减去几个数的和就等于连续减去这几个数。
如:106-(26+74) = 106-26-74连减的简易计算例题:528—65—35 528—89—128 528—(150+128)3、加、减法混淆运算的性质:在计算没有括号的加、减混淆运算时,计算时可以带着运算符号“迁居”。
即:a + b– c = a–c + b加、减混淆的简易计算方法:在没有括号的加、减混淆运算时,第一个数的地点不变,其他的加数、减数能够带着运算符号“迁居”。
加减法的几种速算技巧A、改变运算顺序速算在只有加减运算的算式中,有时改变加、减的运算顺序可使计算显得十分巧妙!例计算10-9+8-7+6-5+4-3+2-1解:这题如果从左到右按顺序进行加减运算,是能够得出正确结果的。
但因为算式较长,多次加减又繁又慢且容易出错。
如果改变一下运算顺序,先减后加,就使运算显得非常“漂亮”。
下式括号中的算式表示先算,10-9+8-7+6-5+4-3+2-1=(10-9)+(8-7)+(6-5)+(4-3)+(2-1)=1+1+1+1+1=5B、带着加减号搬家的速算例计算1-2+3-4+5-6+7-8+9-10+11解:这题只有加减运算,而且1-2不够减。
我们可以采用带着加减号搬家的方法解决。
要注意每个数自己的符号就是这个数前面的那个“+”号或“-”号,搬家时要带着符号一起搬。
1-2+3-4+5-6+7-8+9-10+11=1+3-2+5-4+7-6+9-8+11-10=1+(3-2)+(5-4)+(7-6)+(9-8)+(11-10)[先减后加] =1+1+1+1+1+1=6在这道题的运算中,把“+3”搬到“-2”的前面,把“+5”搬到了“-4”的前面……把“+11”搬到了“-10”的前面,这就叫带着符号搬家。
巧妙利用这种搬家法,可以使计算简便。
C、凑整法速算同学们已经知道,下面的五组成对的数相加之和都等于10:1+9=102+8=103+7=104+6=105+5=10巧用这些结果,可以使计算又快又准。
例1 计算1+2+3+4+5+6+7+8+9+10解:对于这道题,当然可以从左往右逐步相加:1+2=3 3+3=66+4=10 10+5=1515+6=21 21+7=2828+8=36 36+9=4545+10=55这种逐步相加的方法,好处是可以得到每一步的结果,但缺点是麻烦、容易出错;而且一步出错,以后步步都错。
若是利用凑十法,就能克服这种缺点。
同学们知道,有些数相加之和是整十、整百的数,如:1+19=20 11+9=302+18=20 12+28=403+17=20 13+37=504+16=20 14+46=605+15=20 15+55=706+14=20 16+64=807+13=20 17+73=908+12=20 18+82=1009+11=20又如:15+85=100 14+86=10025+75=100 24+76=10035+65=100 34+66=10045+55=100 44+56=100等等巧用这些结果,可以使那些较大的数相加又快又准。
计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[x+y]补=[x]补+[y]补补码减法:为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补(证明)为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)溢出检测溢出的检测可能产⽣溢出的情况两正数加,变负数,上溢(⼤于机器所能表⽰的最⼤数)两负数加,变正数,下溢(⼩于机器所能表⽰的最⼩数)定点原码乘法定点乘法原理n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,⽽FA只有两个输⼊端,机器⼀次只能进⾏两个数的相加,不能进⾏多个数据的加法。
⼿⼯计算中,乘数的每⼀位是0还是1都可直接看见,⽽在计算机中,采⽤放乘数的寄存器的每⼀位直接决定本次相加数是被乘数还是0是很不⽅便的,若采⽤该寄存器的最低⼀位来执⾏这种判断就简便了。
计算机中执⾏乘法时,积的符号位由被乘数和乘数的符号位通过⼀个半加器(即异或门)实现。
数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移⼀位,得到新的部分积;当Yi为0时,则写下全0。
然后再对乘数Y的⾼⼀位进⾏类似乘法运算。
重复“加—右移”操作N次,可得到最后的乘积。
R0存放部分积,R2存放被乘数,R1存放乘数R0清零,R2存放被乘数,R1存放乘数。
乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出⾄R0的输⼊端。
⼀旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作⽤下右移⼀位,且计数器I记数⼀次;将步骤三重复执⾏N次当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:⼀是符号位需要单独运算,最后给运算结构以正确的符号;⼆是对于采⽤补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不⽅便,⽽且影响速度。
2.5 定点除法运算2.5.1 原码一位除法设被除数[x]原=xf.x1x2…xn,除数[y]原=yf.y1y2…yn则有[x÷y]原=(xf⊕yf)+(0.x1x2…xn/0.y1y2…yn)对于定点小数,为使商不发生溢出,必须保证|x|<|y|;对于定点整数,为使商不发生溢出,必须保证双字|x|的高位字部分<|y|。
计算机实现原码除法,有恢复余数法和不恢复余数法两种方法。
1. 恢复余数法由于每次商0之前都要先恢复余数,因此这种方法称之为恢复余数法。
[例2.40] x=0.1001,y=-0.1011,用原码恢复余数法计算x÷y。
2. 不恢复余数法不恢复余数法又称加减交替法,它是恢复余数法的一种变形。
设ri表示第i次运算后所得的余数,按照恢复余数法,有:若ri>0,则商1,余数和商左移1位,再减去除数,即ri+1=2ri-y若ri<0,则先恢复余数,再商0,余数和商左移1位,再减去除数,即ri+1=2(ri+y)-y=2ri+y由以上两点可以得出原码加减交替法的运算规则:若ri>0,则商1,余数和商左移1位,再减去除数,即ri+1=2ri-y;若ri<0,则商0,余数和商左移1位,再加上除数,即ri+1=2ri+y。
由于此种方法在运算时不需要恢复余数,因此称之为不恢复余数法。
原码加减交替法是在恢复余数的基础上推导而来的,当末位商1时,所得到的余数与恢复余数法相同,是正确的余数。
但当末位商0时,为得到正确的余数,需增加一步恢复余数,在恢复余数后,商左移一位,最后一步余数不左移。
[例2.41] x=0.1001,y=-0.1011,用原码加减交替法计算x÷y。
由例2.41可以看出,运算过程中每一步所上的商正好与当前运算结果的符号位相反,在原码加减交替除法硬件设计时每一步所上的商便是由运算结果的符号位取反得到的。
由例2.41还可以看出,当被除数(余数)和除数为单符号时,运算过程中每一步所上的商正好与符号位运算向前产生的进位相同,在原码阵列除法器硬件设计时每一步所上的商便是由单符号位运算向前产生的进位得到的。