定点数乘法通常通过“累加 + 移位”的方式实现,将乘法转化为加法。
规范与警告 重点
- 严禁手工计算: 考试中必须严格按照机器运算规则(如原码/补码一位乘法规则)进行移位加法计算。严禁使用手工长乘法列式计算,即使答案正确也记为 0 分。
- 位数保留:
- 结果的数值位数必须完整。若乘数与被乘数均为 位数值,则乘积应为 位(原码一位乘)或 位。
- 即使末尾是 0 也必须写出,不能随意截断或省略。
- 过程完整性: 必须清晰列出初始设定(被乘数、乘数绝对值或补码)、寄存器状态变化过程。
原码一位乘法
- 原理:绝对值相乘,符号位单独处理。
- 积的符号:
- 数值部分:
- 硬件资源:
- 寄存器 A (部分积,初值 0)。
- 寄存器 B (被乘数 )。
- 寄存器 C (乘数 ,与 A 级联移位)。
- 规则:
- 检查乘数最低位 。
- 若 ,部分积
- 若 ,部分积
- 右移:A and C 级联右移一位 (逻辑右移,高位补 0)。
- 重复 次( 为数值位数)。
- 特点:需做 次加法 and 次移位。

补码一位乘法 (Booth 算法)
- 原理:符号位参与运算,将被乘数与乘数均以补码表示直接计算。
- 规则 (Booth Rule):
- 在乘数 最低位后增加一位附加位 ,初值为 0。
- 每次根据 的取值决定操作:
- 00 或 11:部分积 ,右移。
- 01:部分积 ,右移。
- 10:部分积 ,右移。
- 移位:按补码右移规则进行(正数补 0,负数补 1)。
- 次数:进行 次移位, 次加法。
- 最后一步 (第 次循环):仅做加法操作,不移位。 重点
- 硬件资源:需 A, B, C 三个寄存器及一位附加位。B 存 ,C 存 。

关键点总结
-
运算对象:
- 原码一位乘法:使用绝对值(符号位单独处理)。
- 补码(Booth):使用补码表示,符号位参与计算,直接处理有符号数。
-
判定位:
- 原码:仅检查乘数最低位 (1 位)。
- Booth:检查 (2 位),根据两位组合决定执行 、 或 。 重点
-
加法操作:
- 原码:若 则部分积 ,否则 。
- Booth:按判定位执行 、 或 。
-
移位方式:
- 原码:逻辑右移(高位补 0)。
- Booth:补码右移(算术右移,符号位扩展)。
-
循环次数与最后一步:
- 原码:进行 次加法并 次移位(结束时仍需移位)。
- Booth:进行 次加法和 次移位,其中第 次仅做加法,不移位。 重点
-
优缺点 / 适用场景:
- 原码:实现简单,适合无符号或分开处理符号的场合。
- Booth:能直接处理有符号乘法,通常在硬件实现中用于减少不必要的加法与移位操作。