定点乘/除法运算及其实现

一、定点乘法运算及其实现:
1 原码乘法:
⑴ 原码一位乘法
在这里插入图片描述
乘积符号的运算法则是:“异或”(按位加)运算得到。 数值部分的运算方法与普通的十进制小数乘法类似。 下面通过一个具体例子从来说明:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原码一位乘法的乘法器结构框图如图所示:
在这里插入图片描述
原码一位乘法的乘法器工作原理:
(1)乘法开始时,“启动”信号使控制触发器Cx置“1”,于是开启时序脉冲T。
(2)当乘数寄存器R1最末位为“1”时,部分积Zi和被乘数X在加法器中相加, 其结果输出至R0的输入端。
(3)一旦打入控制脉冲T到来,控制信号LDR0使部分积右移一位,与此同时,R1也在控制信号LDR1作用下右移一位,且计数器i计数一次。
(4)当计数器i=n时,计数器的溢出信号使触发器Cx置“0”,关闭时序脉冲T, 乘法宣告结束。

原码两位乘法:
基本原理类似:只是从最低位开始,每次取两位乘数与被乘数相乘,得到一次部分积,与上次部分积相加后右移2。

2、补码乘法:
补码一位乘法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补码乘法公式:
[X · Y]补 = [X]补· [Y]补= [X]补·Y
由补码乘法公式及补码与真值的关系得:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现补码一位乘法的乘法器的逻辑框图如图所示 :
在这里插入图片描述
补码两位乘法:是把补码的一位乘法的两个单步操作和并成一个操作。即:
在这里插入图片描述

二、定点除法运算及其实现
1、原码除法运算:是指用原码表示两数相除,求出原码表示的商
⑴运算规则:设有n位定点小数(定点整数也同样适用):
   被除数x:[x]原=xf .xn-1…x1x0
   除数y: [y]原=yf .yn-1…y1y0
   则有商q其原码为:
[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)

原码除法中据对可分为:恢复余数法和加减交替法
原码恢复余数法:
在这里插入图片描述
对上述手算计算过程分析得:
(1) 每次都是由心算来比较余数和除数的大小,余数大时,商1;
余数小时,商0。第一次比较时,余数就是被除数。
(2) 每做一次减法,总是保持余数不动,而除数向右移一位。
(3)最后据符号位运算的结果给商以正确的符号

为适应机器运算,需要进行改进:
(1)用减法来比较余数和除数的大小
(2)除数右移改为余数左移
(3)定点除法运算必须要求被除数的高n位小于除数,否则溢出。
在这里插入图片描述
在这里插入图片描述
用原码恢复余数法:求| X | / | Y |的解题步骤: y*= ︱Y︱
先将被除数/余数减去除数得新余数Ri
若Ri>0:商“1”,再将Ri左移一位后减除数(即 2Ri-y*),得新余数Ri′
若Ri<0:商“0”,先将Ri+y*,即完成恢复余数的运算,再对Ri+y* 左移一位后减除数,即2(Ri+ y*)- y* ,得新的余数Ri′
再将上述过程重复n(除数位数)次,共上n位商
最后所得的商和余数即为| X | / | Y | 的商及余数
在这里插入图片描述
分析原码恢复余数法得知:
①当余数 Ri>0时,商“1”,再对Ri左移一位后减除数,即2Ri-y*
②当余数 Ri<0时,商“ 0”,先将Ri+y*,再2(Ri+y*)- y*,也即2Ri+y*。

原码恢复余数法可归纳为:
①当余数Ri>0时,商“1”,做2Ri-y* 运算
②当余数 Ri<0时,商“ 0”,做2(Ri +y*) -y*运算

原码不恢复余数法(加减交替法):
用原码加减交替法:求| X | / | Y |的解题步骤:
先将余数减去除数得新余数Ri
若Ri>0:商“1”,做2Ri-y* 运算
若Ri<0:商“0”, 做2Ri+y*运算
再将上述过程重复n(除数位数)次,共上n位商
最后所得的商和余数即为| X | / | Y | 的商及余数
在这里插入图片描述

原码加减法可归纳为:
①当余数Ri>0时,商“1”,做2Ri-y* 运算
②当余数 Ri<0时,商“ 0”,做2Ri +y*运算

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2.补码除法运算:
⑴补码除法:指“符号位和数码位一起参加除法运算,参加运算的操作数是补码,求得的商数和余数也是补码。
⑵补码除法运算方法:采用加减交替法。
⑶补码除法加减交替法的操作过程:
① 若X,Y同号,做X-Y得余数R,商0为商的符号位,再做2R+Y得Ri
若X,Y异号,做X+Y得余数R,商1为商的符号位,再做2R-Y得Ri
② 若余数Ri与Y同号,商1,后做2Ri-Y。
  若余数Ri与Y异号,商0,后做2Ri+Y。
③ 重复第②步n-1次
④ 第n次上商后,不再移位及+Y,-Y操作。
⑤ 若商为负数,则在商末尾加1
若余数与被除数X异号,则要纠余:
若X,Y同号,用+Y纠余,
若X,Y异号,用-Y纠余,   
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对补码加减交替法说明如下:
(1)不能自动判溢出,因此在补码除法运算之前,必须先比较被除数高瑞n位与除数的绝对值,确认不会产生除法溢出后,才可开始除法运算。
(2)符号位不需要单独运算,可自然得到商数和余数的正确符号。
(3) 若最后一次余数与被除数异号,则需要纠余:X、Y同号,则+Y纠余,X、Y异号,则-Y纠余。

3 .不恢复余数的阵列除法器:
在这里插入图片描述

  • 10
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值