计算机组成原理:原码的乘法运算

手动计算二进制乘法:

和十进制是一样的。

机械实现的问题:

 

一:符号位的处理

 

直接异或就可以了。接下来乘法的运算就是绝对值的运算了,因此符号位都变成0.

二:计算的过程

先回忆一下运算器的结构:

具体是怎么样的呢?非常巧妙:

 第一步:

 第一位乘数是1,于是就要把被乘数移到ACC:

第一部计算就是这样,接下来就是第二步。由于我们每次做乘法的时候,每做下一步乘法都是要往右移一位的,所以这个地方要把ACC,MQ往左边移一位,这样就可以继续加了。最右边的那一位直接舍弃,以后不再用它了。(现在可以看到为什么ACC和MQ可以一起储存乘积了吧,妙呀)

一直这样直到乘数只剩下了符号位:

 

符号位不用参加运算,于是到这个地方就可以停止了。这里要注意这两个数都是小数,如果把符号位也当成数值的一部分的话会导致乘数缩小1/2。

手算模拟一下:

 

上述的例子讲的是小数的计算方法,整数怎么办呢?其实是一样的:

 

小数计算,小数点固定在左边那个点,整数计算,小数点固定在右边那个点。 

 那被乘数是整数,乘数是小数怎么办?个人认为应该把小数点放在MQ开头处就可以了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值