计算机实现乘、除法运算有下面几种方法。(一)用乘的程序实现,在小型机和微型机中常采用这种方法,这些机器都具备最基本的操作;如:加、减、移位和转移等指令,用乘的程序就可以实现乘除运算,不需要专门的硬设备。这种用子程序实现乘除法运算速度较慢。(二)在加法器上增加些控制电路以实现乘除运算。(三)采用专用的乘除法器,设置乘除法指令,一般在大型机上采用,或者作为可选部件用于微型或小型计算机。现在就介绍一下微型机上常用的定点乘除法运算。
原码乘法运算
在定点计算机中,乘法运算是确定乘积符号和乘积数值的过程。
若两数相乘,乘数和被乘数的符号相同时,则乘积符号为正;符号相异时,积的符号为负。若用X和Y表示乘数和被乘数,X\(_{f}\)和Yf表示两者的符号位,则:积的符号=X\(_{f}\)f,积的值=|X|·|Y|。下面举一个两数相乘的例子。

可见,乘数由低位到高位逐位去乘被乘数。当乘数的某一位为0时,得到的部分积为0;为1时,得到的部分积就是被乘数。当乘数为n位时,将n个部分积相加,这和十进制乘法是一样的。这样就要有n个寄存器,以存放n个部分积,还要有二n位的加法器,要用的设备太多了。所以,在加法器中,不用n个部分积总起来一次相加的办法,而是逐一相加,并把相加的结果向右移,再在原来位置上同下一个部分积相加。上述过程如下:

在机器中,若被乘数1 1 0 1放在寄存器AC\(_{2}\)中(如图所示),乘数1 0 0 1放在AC1中,积放在AC\(_{0}\)中。下式即是运算过程:


这样,利用了原来存放乘数的AC\(_{1}\)寄存器配合AC0寄存器,不断的判断、相加、右移、最后将2n位双倍字长的乘积存进AC\(_{0}\)和AC1寄存器。
原码除法运算
二进制除法和十进制除法相似,下面先看笔算除法的一个例子。

除数Y和被除数X用原码表示。商的符号如同乘法那样,单独由两个数的符号按位相加得到,商的数值是由两正数根除得到。对小数点在前的定点除法,必须验证|X|是否小于|Y|,否则商将大于或等于1溢出寄存器,设计人员要重新选择比例因子,以满足上述条件。但也不要使被除数比除数小得太多,以免失掉商的最高位。用恢复余数法进行除法运算的过程中,机器先做减法,由余数的符号来判断是否够减。余数为正表示够减,商1。余数为负是不够减,商0。不够减时要恢复成原来的余数,再左移1位求商,就这样重复进行下去。相减在计算机中用补码相加即可以得到。因为在计算机中不能直接进行减法运算,减法运算在计算机中先将要运算的数变成补码,再将补码相加即可得到计算结果。为了使读者详细地看清运算步骤,这里将计算机中进行的计算过程用下面的算式表示,读者可以从运算中学习这种方法。

以上是二进制除法运算中的一种,它和乘法一样,都可以利用电路或程序实现。若是利用程序实现,就要把上面讲到的除法运算划分成许多机器指令(如:相减、移位、判断等),分别运算。依次执行这些指令就可以实现全部运算,如果用逻辑电路来实现,就要依靠每一部分电路完成上面运算的一部分(如:相减、移位等)。来完成整个运算。这种运算只使用一条除法指令,即可完成全部运算,所以运算速度快,但实现起来成本较高。
计算机的基本功能是进行数的运算和加工处理。数在计算机中是以器件的物理状态来表示的,为了表示更为方便和可靠,在计算机中主要采用了二进制数字系统。或者说,计算机只认得二进制数,也即计算机处理的所有数,都要用二进制数字系统来表示;所有的字母、符号也都要用二进制编码来表示。所以要想对计算机内部工作过程有个详细的了解,就要弄清楚二进制数的加、减、乘、除的运算方法。在计算机中的其它运算(如函数运算、微积分运算等)都是加、减、乘、除运算的一些组合。所以,加、减、乘、除是计算机运算的基础。(梁玉珊)