目录
一、定点乘法
1.串行乘法器
2.并行乘法器
二、定点除法
1.笔算除法
2.机器除法
一、定点乘法
1.串行乘法器
1.符号位单独处理,两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
2.过程
(1) 由乘数的末位决定被乘数是否与原部分积相加,然后右移1位形成新的部分积,同时乘数右移1位(末位移丢),空出高位存放部分积的低位。
(2)被乘数只与部分积的高位相加。
注:乘法运算可用移位和加实现 ,如:n = 4,加 4 次,移 4 次。用移位的次数判断乘法是否结束。
例:A = – 0.1101 ,B = 0.1011 ,A×B = – 0.10001111。计算过程如下:
3.硬件需要:
1个全加器;
3个寄存器(具有移位功能):1个存放被乘数、一个存放乘积高位、一个存放乘数及乘积的低位;
2.并行乘法器
早期计算机中为了简化硬件结构,采用串行的1位乘法方案,即多次执行“加法—移位”操作来实现。然而串行方法毕竟太慢,自从大规模集成电路问世以来,出现了各种形式的流水式阵列乘法器,它们属于并行乘法器。
在m位乘n位不带符号整数的阵列乘法中,“加法—移位”操作的形成被加数矩阵。每一个部分乘积项(位积)叫做一个被加数。 m×n个被加数可以用m×n个“与”门并行地产生。
设计高速并行乘法器的基本问题,就在于缩短被加数矩阵中每列所包含的1的加法时间。
二、定点除法
1.笔算除法
例:x = – 0.1011,y = 0.1101 求 x÷y
x÷y = – 0.1101,余数= 0.00000111
笔算过程:被除数小于除数(不够减),商0、大于除数(够减),商1。余数低位补0,减右移(逻辑右移)一位的除数。符号位单独计算。
2.机器除法
(1)原码除法算法原理
以小数为例(整数同理)
商的符号位单独处理 ; 数值部分为绝对值相除
注:1.小数定点除法 x* < y*;整数定点除法 x* > y*。
2.除数不能为 0;被除数不能等于0。
(2)恢复余数法:机器的运算过程和人毕竟不同,人会心算,一看就知道够不够减。但机器却不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。要恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。
(3)加减交替法(常用):运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。