补码一位乘法_第1页
补码一位乘法_第2页
补码一位乘法_第3页
补码一位乘法_第4页
补码一位乘法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、二. 补码一位乘法 为了得到补码一位乘法的规律,我们先从补码和真值的转换公式开始讨论. 1.补码与真值的转换公式 设x补=x0.x1x2xn, 当x=0时, x0=0, n x补=0.x1x2xn=xi2-i=x i=1 当x0时, x0=1, x补=1.x1x2xn=2+x 所以 n x=1.x1x2xn-2=-1+0.x1x2xn=-1+ xi2-i i=1,故得出 n x=-x0+ xi2-i i=1 等式右边x为真值.这是一个重要公式,说明真值和补码之间的关系. 2.补码的右移 正数右移一位,相当于乘 12.负数用补码表示时,右移一位也相当于乘 12.因此,在补码运算的机器中,一个数不

2、论其正负,连同符号位向右移一位,符号位保持不变,就等于乘 12.现证明如下: 设 x补=x0.x1x2xn,因为 n x=-x0+ xi2-i i=1,所以 n 1/2x=-1/2x0+1/2 x2-i i=1 n n =-x0+1/2x0+1/2 xi2-i =-x0+1/2 xi 2-(i+1) i=1 i=0 写成补码形式,即得 1/2x补=x0.x0 x1x2 xn 如果要得 2-ix补,只要将x补连同符号右移i位即可. 3补码乘法规则 设被乘数x补=x0.x1x2xn和乘数y补=y0.y1y2yn均为任意符号,则有补码乘法算式 n xy补=x补(-y0+ yi2-i ) (2.31)

3、 i=1,证明如下: (1)被乘数x符号任意,乘数y符号为正. 根据补码定义,可得 x补=2+x=2n+1+x (mod 2) y补=y 所以 x补y补=2n+1 y + xy = 2 (y1y2yn) + xy 其中( y1y2 yn)是大于0的正整数,根据模运算性质有 2(y1y2 yn)= 2 (mod 2) 所以 x补y补=2+xy=xy 补 (mod 2) 即 x y补 =x补 y补=x补 y (2.31a),(2)被乘数x符号任意,乘数y符号为负 x 补=x0.x1x2xn y 补=1.y1y2yn=2+y (mod 2) 由此 y=y补 - 2=0.y1y2yn-1 所以 xy

4、= x(0.y1y2yn) - x xy 补=x(0.y1y2yn) 补+-x 补 又(0.y1y2yn)0,根据式(2.31a)有 x(0.y1y2yn) 补=x 补(0.y1y2yn) 所以 xy 补=x 补(0.y1y2yn) + -x 补 (2.31b) (3)被乘数x和乘数y符号都任意. 将式(2 31a)和武(2.31b)两种情况综合起来,即得补码乘法的统一算式, 即 xy 补=x 补(0.y1y2yn) - x 补y0 =x 补(-y0+0.y1y2yn) n =x 补(-yo + yi2-i) i=1 证毕.,为了推出串行逻辑实现的分步算法,将上式展开加以变换: xy 补=x

5、补 -y0+ y12-1+y22-2+yn2-n =x 补 -y0+(y1-y12-1)+(y22-1-y22-2)+(yn2-(n-1) - yn2-n) =x 补(y1-y0)+(y2-y1)2-1+(yn-yn-1)2-(n-1) + (0-yn)2-n n =x 补 (yi+1 - yi)2-i i=1 写成递推公式如下 z0 补=0 z1 补=2-1z0 补+(yn+1-yn)x 补 (yn+1=0) z2 补=2-1z1 补+(yn - yn-1)x 补 zi 补=2-1zi-1 补+ (yn-i+2 - yn-i+1)x 补 zn 补=2-1zn-1 补+ (y2 - y1)x

6、补 zn+1 补=zn 补+(y1-y0)x 补=xy 补,开始时,部分积为0,即z0补=0然后每一步都是在前次部分积的基础上,由(yi+1-yi)(i=0,1,2,n)决定对x补的操作,再右移一位,得到新的部分积.如此重复n+1步,最后一步不移位,便得到xy补,这就是有名的布斯公式. 实现这种补码乘法规则时,在乘数最末位yn后面要增加一位补充位yn+1。开始时yn+1=0, 由 ynyn+1 判断第一步该怎么操作;然后再由yn-1yn判断第二步该怎么操作。但因为每作一步要右移一位,故作完第一步后,yn-1yn正好移到原来ynyn+1的位置上。依此类推,所以每步都用ynyn+1位置进行判断.我

7、们将此两位称为判断位.如果判断位ynyn+1=01,则yi+1 - yi=1,做加x补操作.如果ynyn+1=10,则yi+1 yi = -1,做减法,即做加-x补操作;如果ynyn+1=11 或 00,则yi+1 yi = 0,zi加0,即保持不变.,补码一位乘法的运算规则如下(开始时yn+1=0): (1)如果yn=yn+1,部分积Zi加0,再右移1位; (2)如果ynyn+1=01,部分积加x补,再右移1位; (3)如果ynyn+1=10,部分积加-x补,再右移1位. 这样重复进行n1步,但最后一步不移位.包括一位符号位,所得乘积为2n1位,其中n为尾数数位.,例 x补=0.1101,

8、y补=0.1011, 求xy补.,解: 部分积 乘数 说明 0 0. 0 0 0 0 0. 1 0 1 1 0 yn+1=0 + 1 1. 0 0 1 1 ynyn+1=10,+-x补 1 1. 0 0 1 1 1 1. 1 0 0 1 1 0 1 0 1 1 右移1位 + 0 0. 0 0 0 0 ynyn+1=11,+0 1 1. 1 0 0 1 1 1. 1 1 0 0 1 1 0 1 0 1 右移1位 + 0 0. 1 1 0 1 ynyn+1=01,+x补 0 0. 1 0 0 1 0 0. 0 1 0 0 1 1 1 0 1 0 右移1位 + 1 1. 0 0 1 1 ynyn+1

9、=10,+-x补 1 1. 0 1 1 1 1 1. 1 0 1 1 1 1 1 1 0 1 右移1位 + 0 0. 1 1 0 1 ynyn+1=01,+x补 0 0. 1 0 0 0 1 1 1 1 0 1 最后一步不移位 实现一位补码乘法的逻辑原理图与一位原码乘法的逻辑结构非常类似,所不同的有以下几点:,(1) 被乘数的符号x0和乘数的符号y0都参加运算. (2) 乘数寄存器R1有附加位yn+1;,其初始状态为“0”.当乘数和部分积每次右移时,部分积最低位移至R1的首位位置,故R1必须是具有右移功能的寄存器. (3) 被乘数寄存器R2的每一位用原码(即触发器Q端)或反码(即触发器Q端)经多路开关传送到加法器对应位的一个输入端.而开关的控制信号由yn和yn+1的输出译码 器产生.当ynyn+1=01时,送x补;当ynyn+1=1时,送-x补,即送R2的反码且在加法器最末位加”1” (4) R0保存部分积,它也是具有右移功能的移位寄存器,其符号位与加法器符

温馨提示

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

最新文档

评论

0/150

提交评论