补码乘法,补码乘法计算详细解说

系统 2407 0
1.补码与真值得转换公式

  补码乘法因符号位参与运算,可以完成补码数的“直接”乘法,而不需要求补级。这种直接的方法排除了较慢的对2求补操作,因而大大加速了乘法过程。

  首先说明与直接的补码乘法相联系数学特征。对于计算补码数的数值来说,一种较好的表示方法是使补码的位置数由一个带负权的符号和带正权的系数。今考虑一个定点补码整数[N] =a n a n-1 …a 1 a 0 ,这里a n 是符号位。根据[N] 的符号,补码数[N] 和真值N的关系可以表示成:

补码乘法,补码乘法计算详细解说

如果我们把负权因数-2 n 强加到符号位a n 上,那么就可以把上述方程组中的两个位置表达式合并成下面的统一形式:


 [例19] 已知: [N 1 ] = (01101) 2 ,[N 2 ] =(10011) 2 ,求[N 1 ] ,[N 2 ] 具有的数值。

  [解:]

  [N 1 ] =(01101) 2 具有的数值为:

  N 1 =-0×2 4 +1×2 3 +1×2 2 +0×2 1 +1×2 0 =(+13) 10

  [N 2 ] =(10011) 2 具有的数值为:

  N 2 =-1×2 4 +0×2 3 +0×2 2 +1×2 1 +1×2 0 =(-13) 10

2.一般化的全加器形式

  常规的一位全加器可假定它的3个输入和2个输出都是正权。这种加法器通过把正权或负权加到输入/输出端,可以归纳出四类加法单元。如右表,0类全加器没有负权输入;1类全加器有1个负权输入和2个正权输入;依次类推。

   对0类、3类全加器而言有:

S XYZ XYZ XYZ XYZ

C XY YZ ZX

  对1类、2类全加器,则有

S XYZ XYZ XYZ XYZ

C XY XZ YZ

表2.3 四类一般化全加器的名称和逻辑符号

补码乘法,补码乘法计算详细解说

注意,0类和3类全加器是用同一对逻辑方程来表征的,它和普通的一位全加器(0类)是一致的。这是因为3类全加器可以简单地把0类全加器的所有输入输出值全部反向来得到,反之亦然。1类和2类全加器之间也能建立类似的关系。由于逻辑表达式具有两级与一或形式,可以用“与或非”门来实现,延迟时间为2T。

补码乘法,补码乘法计算详细解说

3.直接补码阵列乘法器

  利用混合型的全加器就可以构成直接补码数阵列乘法器。设被乘数A和乘数B是两个5位的二进制补码数,即

  A=(a 4 )a 3 a 2 a 1 a 0

  B=(b 4 )a 3 a 2 a 1 a 0


  它们具有带负权的符号位a 4 和b 4 ,并用括号标注。如果我们用括号来标注负的被加项,例如(a i b j ),那么A和B相乘过程中所包含的操作步骤如下面矩阵所示:

补码乘法,补码乘法计算详细解说

 5位乘5位的直接补码阵列乘法器逻辑原理。

补码乘法,补码乘法计算详细解说

其中使用不同的逻辑符号来代表0类、1类、2类、3类全加器。2类和1类全加器具有同样的结构,但是使用不同的逻辑符号可使乘法阵列的线路图容易理解。

  在n位乘n位的一般情况下,该乘法器需要(n-2) 2 个0类全加器,(n-2)个1类全加器,(2n-3)个2类全加器,1个3类全加器,总共是n(n-1)个全加器。 故所需的总乘法时间是:

t p =Ta+2(n-1)Tf=2T+(2n-2)2T=(4n-2)T         (2.31)

  [例20] 设[A] =(01101) 2 ,[B] =(11011) 2 ,求[A×B] =?

  [解:]

补码乘法,补码乘法计算详细解说

验证:

  -1×27+0×26+1×25+1×24+1×23+1×22+1×21+1×20
  =-128+(32+16+8+4+2+1)
  =-65

  (13)×(-5)=-65

PS:这里解释的不大明白,个人觉得是因为补码符号位的计算本来要进一个(1),但是因为补码的进位要舍弃的关系(舍弃那位是本来借的更高位),所以不需要进,最后看一下,由于最高位是符号位,最后需要补上

补码乘法,补码乘法计算详细解说


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论