计组之数据运算:6、原码乘法运算
生活随笔
收集整理的這篇文章主要介紹了
计组之数据运算:6、原码乘法运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原碼乘法運算
- 思維導圖
- 原碼一位乘法
- 原理實現:(類比十進制)
- 機器實現:
- 寄存器步驟演示:
- 手算實現
- 補碼一位乘法
- 硬件區別:
- 手算實現
思維導圖
原碼一位乘法
先來看一下十進制乘法的本質原理:
原理實現:(類比十進制)
機器實現:
1、取乘數、被乘數原碼的絕對值
2、然后通過先相加在移位的操作計算數值(解決多個位積問題)
3、用邏輯異或計算符號位(解決符號位問題)
PS:還有一個問題是結果的位數擴大保存問題:
Q:用ACC保存乘積高位,MQ保存乘積低位,如下寄存器演示中所示
寄存器步驟演示:
PS:解釋一下:就是相乘、賦值、移位循環往復的過程;
a、首先用被乘數與乘數最低位相乘,結果加到ACC中,然后將ACC、MQ向右移位
b、然后在用被乘數與乘數最低位(此時由于右移最低位其實是乘數的倒數第二位)相乘,結果加到ACC中,然后將ACC、MQ向右移位
c、結束標志:乘數有幾位數值位(不包含符號位),就右移幾次
1、初始化
2、乘數最低位參與運算并將值加到ACC并邏輯右移
3、右移后的最低位(乘數的倒數第二位)參與運算并邏輯右移
4、最終結果
手算實現
補碼一位乘法
對比一下:
硬件區別:
手算實現
總結
以上是生活随笔為你收集整理的计组之数据运算:6、原码乘法运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode:面试题40. 最小的k
- 下一篇: 计算机网络之传输层:3、TCP协议