原碼除法運算原理是什么?
兩個原碼表示的數(shù)相除時,商的符號由兩數(shù)的符號按位相加求得,商的數(shù)值部分由兩數(shù)的數(shù)值部分相除求得。
設(shè)有n位定點小數(shù)(定點整數(shù)也同樣適用):
被除數(shù)x,其原碼為 [x]原=xf.xn-1…x1x0
除數(shù)y,其原碼為 [y]原=yf.yn-1…y1y0
則有商q=x/y,其原碼為
[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)
商的符號運算qf=xf⊕yf與原碼乘法一樣,用模2求和得到。商的數(shù)值部分的運算,實質(zhì)上是兩個正數(shù)求商的運算。根據(jù)我們所熟知的十進制除法運算方法,很容易得到二進制數(shù)的除法運算方法,所不同的只是在二進制中,商的每一位不是“1”就是“0”,其運算法則更簡單一些。
下面僅討論數(shù)值部分的運算。設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011,模仿十進制除法運算,以手算方法求x÷y的過程如下:
?上面的筆算過程可敘述如下:
1. 判斷x是否小于y?現(xiàn)在x<y,故商的整數(shù)位商“0”,x的低位補0,得余數(shù)r0。
2. 比較r0和2-1y,因r0>2-1y,表示夠減,小數(shù)點后第一位商“1”,作r0-2-1y,得余數(shù)r1。
3. 比較r1和2-2y,因r1>2-2y,表示夠減,小數(shù)點后第二位商“1”,作r1-2-2y,得余數(shù)r2。
4. 比較r2和2-3y,因r2<2-3y,不夠減,小數(shù)點后第三位商“0”,不作減法,得余數(shù)r3(=r2)。
5. 比較r3和2-4y,因r3>2-4y,表示夠減,小數(shù)點后第四2位商“1”,作r3-2-4y,得余數(shù)r4,共求四位商,至此除法完畢。
在計算機中,小數(shù)點是固定的,不能簡單地采用手算的辦法。為便于機器操作,使“除數(shù)右移”和“右移上商”的操作統(tǒng)一起來。
事實上,機器的運算過程和人畢竟不同,人會心算,一看就知道夠不夠減。但機器卻不會心算,必須先作減法,若余數(shù)為正,才知道夠減;若余數(shù)為負(fù),才知道不夠減。不夠減時必須恢復(fù)原來的余數(shù),以便再繼續(xù)往下運算。這種方法稱為恢復(fù)余數(shù)法。要恢復(fù)原來的余數(shù),只要當(dāng)前的余數(shù)加上除數(shù)即可。但由于要恢復(fù)余數(shù),使除法進行過程的步數(shù)不固定,因此控制比較復(fù)雜。實際中常用不恢復(fù)余數(shù)法,又稱加減交替法。其特點是運算過程中如出現(xiàn)不夠減,則不必恢復(fù)余數(shù),根據(jù)余數(shù)符號,可以繼續(xù)往下運算,因此步數(shù)固定,控制簡單。
早期計算機中,為了簡化結(jié)構(gòu),硬件除法器的設(shè)計采用串行的1位除法方案。即多次執(zhí)行“減法—移位”操作來實現(xiàn),并使用計數(shù)器來控制移位次數(shù)。由于串行除法器速度太慢,目前已被淘汰。
得x÷y的商q=0.1101,余數(shù)為r=0.00000001。
非常好我支持^.^
(152) 14.5%
不好我反對
(895) 85.5%
相關(guān)閱讀:
- [物聯(lián)網(wǎng)] 聊一聊計算機存儲的細(xì)節(jié)-原碼反碼和補碼 2023-07-08
- [可編程邏輯] FPGA中定點數(shù)的處理方法 2023-05-24
- [電子說] 如何實現(xiàn)FPGA中的除法運算 2022-04-27
- [PLC/PAC] 二進制除法運算指令 2021-04-04
- [模擬技術(shù)] 二進制的原碼和反碼與補碼的詳細(xì)資料講解 2021-02-15
- [電子說] 深入探求反碼和補碼 2020-09-15
- [電子說] 計算機的原碼和反碼及補碼到底是什么 2020-02-12
- [電子說] 用于除法運算的運行時ABI輔助方法過載 2018-07-19
( 發(fā)表人:admin )