我們來看這樣乙個例子:在8位暫存器中儲存了00000111,4位暫存器中儲存了0010,計算00000111/0010。
回想一下,我們整數的除法是怎麼做的?如上面的數改寫成十進位制,即7/2的結果是多少呢?
我們肯定是先列出乙個除法式子,像下面這樣。
我們首先是判斷一下,當前被除數7中有幾個除數,有幾個則商就上幾個,然後被除數減去除數乘商得到餘數,接著判斷餘數中有幾個除數,直到除不開為止。如果發現商是0,則被除數補0,除數向右移動一位,繼續計算。
在7中有3個2,結果是餘1,1中不存在2,這就是最終的結果。
接著看一下上面的例子:我們要做的,肯定是先列出乙個式子。
和整數除法一樣,兩個二進位制數之間的除法同樣的。步驟如下:
大體上的過程就是這樣的。根據上述的過程,我們能夠很容易的設計出基本的除法器。此外,要注意的是,除法器應該具有判斷除數或者被除數是否為0的功能,因為被除數為0時結果為0,沒有意義;而除數為0時,結果為無窮大,無法表示。
在了解了除法器的基本情況後,我們就來講除法運算的兩種方法。分別是:恢復餘數法、加減交替法。
從名字中可以看出,這種方法對餘數做了某種恢復。為什麼會出現這種恢復呢?原因很簡單,我們在分析一般除法的過程中可以看到,如果除數和被除數當前對齊的位上,被除數有0個除數,此時我們就需要將被除數補0。但是計算機並不知道被除數是否夠除除數(因為不管除數和被除數的情況如何,最後的商上的位,不是0就是1),就需要先用被除數減去除數,如果發現餘數是小於0的,那麼計算機就知道了此時對齊的位無法得到最終的結果,則將被除數向又移動一位。這就是恢復餘數法的核心思想。當然,我們在直接計算的時候,需要將兩個數的絕對值相除,再得到最終的結果。
接下來我們就來看,恢復餘數法究竟是如何運算的。
加減交替法也稱作不恢復餘數法。為啥呢,因為在加減交替法中,先讓被除數減除數,如果結果為正,則上1,;如果結果為負,則加上除數。接著將被除數向做移動一位。不過你要是細看的話,這兩種方法其實並沒有太大的區別,自己好好體會一下就行了。
下面看個例子:
參考:《計算機組成原理》唐朔飛
計算機組成原理之定點數與浮點數
計算機中常用的資料表示形式 定點數 浮點數。定點數 小數點的位置固定不變 分為定點定點整數和定點小數 1 定點小數 純小數 小數點隱含固定在最高資料位的左邊,所以整數字就是最高位用來表示符號位 計算機中儲存為 1010111 第一位1為符號位,表示負數 實際含義 0.010111 2 定點整數 純整...
計算機原理 3 6 定點數除法
1 手工除法運算方法 啟示 除法可通過減法實現 問題 除數移位次數不固定且多 需要長度為2n位的餘數暫存器 如何判斷每步是否夠減 2 原碼恢復餘數除法 如何判斷是否夠減 利用減法,通過餘數符號判斷 餘數為正數時,夠減,商上1,將餘數左移一位,再與除數做減法比較 餘數為負數時,不夠減,商上0,加除數恢...
計算機組成原理(九)
資料校驗 奇偶校驗 增設一位校驗位,從而使1的個數是奇數或者是偶數 例 待編碼資訊 10110001 奇校驗編碼 101100011 5個 1 偶校驗編碼 101100010 4個 1 侷限性 不能發現偶數字 2 4 6 8.錯,不能定位錯誤 海明校驗 是一種多重分組奇偶校驗,將 分為若干組,每組進...