ALU
1. 乘法
1.1 原码乘法
结果 = 被乘数 × 乘数
基本算法:
- 若乘数的当前位为 1 ,将被乘数和部分积求和
- 若乘数的当前位为 0 , skip
- 部分积左移
- 循环 32 次
1.2 补码乘法
\[
[y]_{补} = y_{n-1} \cdot 2^n + y = y_{n-1} \cdots y_0 = \sum_{k=0}^{n-1} 2^k y_k \\
\Rightarrow y = - 2^{n-1} y_{n-1} + \sum_{k=0}^{n-2} 2^k y_k
\]
布斯算法:
原理推导:
操作过程:
1.3 除法
1.3.1 原码一位除
1.3.2 加减交替除法
原理:
具体操作(by Acha):
若求中间某一步的余数,则看其正负;若为负,则需加上除数 Y (带符号的补码形式)。
Last update:
December 27, 2021
Authors: