401 - 乘法器的运算过程

不多BB,先看人工算法:列竖式计算十进制数2345 x 9876的结果

图1.png

注意第一次运算5 x 6时,多了一个步骤是查九九乘法表中5 x 6 = 30,记入中间结果。

图2.png

依次运算出各乘数的中间结果,最后得到的总过程为:


图3.png

根据竖式计算的原理,现在来计算二进制数1000 x 1001(也可以看成十进制的):

图4.png

得到一个规律:

  • 如果当前参与运算的乘数位为1,则直接将被乘数放置在对应位置上;
  • 如果当前参与运算的乘数位为0,则直接将“0”放置在对应位置上。

这个规律只对0和1的乘法运算起作用,由此也可以看出为什么计算机会选择二进制。

图5.png

有过编程基础就知道,计算机运算时是“一步一步”运算的,也就是说,一次操作只输出一个结果。体现在乘法运算上,就是每次被乘数与乘数相乘,就会产生一个中间结果(如1000 x 1001的第一步会产生一个中间数 1000),各个中间结果相加得到最终结果。

为了节省计算机部件和提高运行效率,我们选择只用3个部件,一个保存被乘数,一个保存乘数,还有一个保存最终结果。那么,乘法运算产生的中间结果,就必须直接与当前乘积累加。来看操作步骤(红色字均为每一次乘积结果):



图6.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容