一、二进制乘法原理
二进制乘法可分为:无符号乘法和有符号乘法
整个相乘过程可分解为一系列的移位、相加操作。
有符号数乘法可分为:(1)正数*正数;(2)正数*负数;(3)负数*正数;(4)负数*负数
1. 正数*正数
两个正数相乘其结果也为正数。
2. 正数*负数
正数与负数相乘其结果必为负数。为保证结果的正确,需要将两个数进行符号位扩展。
3. 负数*正数
4. 负数*负数
假定被乘数和乘数位宽分别为M1和M2
(1)无论是无符号数相乘还是有符号数相乘,其乘积的位宽必定是M1+M2
(2)如果被乘数和乘数均为有符号数,那么相乘之前首先要进行符号位扩展,将被乘数和乘数均扩展为M1+M2位
二、基于移位相加的乘法器
根据乘法运算的原理可知:乘法运算最终可分解位一系列的移位、相加操作。这正是移位相加型乘法器的设计依据。