一位原码乘法的计算

(1)数学原理:   

                两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值等于两数绝对值之积。  

                 假设 [X]=X0.X1X2..Xn            

                 [Y]=Y0.Y1Y2..Yn

          则有:   [X·Y]= (X0Y0).[(X1X2..Xn)·(Y1Y2..Yn)]



(2)算法:

         假设 X=0.X1X2..Xn Y=0.Y1Y2..Yn

          即均为正纯小数   X·Y= X·0.Y1Y2..Yn     

                          = X·(2-1Y1+2-2Y2+...+2-n+1Yn-1+2-nYn     

                          = X·(2-nYn+2-n+1Yn-1+...+2-2Y2+2-1Y1      

                          = (..((0+ Yn X)2-1+Yn-1X)2-1)+...)+Y2X)2-1)+Y1X)2--1)  

                  根据上述计算过程,

             

                 可得算法如下:      

                    A0=0      

                   A1=A0+YnX)2-1      

                   A2=A1+Yn-1X)2-1    

                              ...     

                   An-1=An-2+Y2X)2-1      

                   An  =An-1+Y1X)2-1    


                 积X·Y=An


例如1:

      X =0.1101 , Y = -0.1011求 Y * Y


   如图计算过程:




例如2:

      X = -0.1011, Y = -0.0110 求(Y * Y)的原码


计算过程如下:




  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨鑫newlfe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值