【计算机组成原理】定点乘法运算之补码一位乘法(Booth算法)(对初学者的步骤详解)
运算规则
- 符号位参与运算,运算的数均以补码表示。
- 被乘数一般取双符号位参与运算,部分积取双符号位,初值为0,乘数可取单符号位。
- 乘数末位增设附加位 y n + 1 y_{n+1} yn+1,且初值为0。
- 根据 ( y n , y n + 1 ) (y_{n},y_{n+1}) (yn,yn+1)的取值来确定操作,参见下表,
- 移位按补码右移规则进行
- 按照上述算法进行n+1步操作,但第n+1不再移位(共进行n+1次累加和n次右移),仅根据 y n y_n yn与 y n + 1 y_{n+1} yn+1的比较结果做相应的运算。
y n y_n yn(高位) | y n + 1 y_{n+1} yn+1(低位) | 操作 |
---|---|---|
0 | 0 | 部分积右移一位 |
0 | 1 | 部分积加 [ X ] 补 [X]_{补} [X] |