第2章數(shù)據(jù)編碼和數(shù)值計算.ppt_第1頁
第2章數(shù)據(jù)編碼和數(shù)值計算.ppt_第2頁
第2章數(shù)據(jù)編碼和數(shù)值計算.ppt_第3頁
第2章數(shù)據(jù)編碼和數(shù)值計算.ppt_第4頁
第2章數(shù)據(jù)編碼和數(shù)值計算.ppt_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第2章 數(shù)據(jù)編碼和數(shù)值計算,計算機組成與匯編語言,2.1 數(shù)值數(shù)據(jù)的信息表示,2.2 定點數(shù)的運算和運算器,2.3 浮點數(shù)的運算和運算器,第 2 章 數(shù) 據(jù) 編 碼 和 數(shù) 值 計 算,2.4 運算器的組成和優(yōu)化,本章要點,二、十、十六、八進制之間的轉(zhuǎn)換 定點數(shù)、浮點數(shù)、BCD碼、ASCII碼的表示,奇偶檢驗碼 定點數(shù)、浮點數(shù)的運算 運算器的基本結(jié)構(gòu),2.1 數(shù)值數(shù)據(jù)的信息表示,2.1.1 數(shù)制及其轉(zhuǎn)換,2.1.3 浮定點數(shù)表示,2.1.2 定點數(shù)表示,2.1.4 BCD碼,2.1.5 非數(shù)值數(shù)據(jù)的信息表示,2.1.6 校驗碼,2.1.1 數(shù)制及其轉(zhuǎn)換,數(shù)制也稱計數(shù)制,是用一組固定的符號和統(tǒng)一

2、的規(guī)則來表示數(shù)值的方法。 計算機中采用二進制,在程序的編寫中有時還會用到八進制和十六進制。各進制可用尾符來標(biāo)識,如: B二進制 H十六進制 Q八進制 D(或省略)十進制 。 也可用下標(biāo)來表示,1. 數(shù)制,舉例,實用的數(shù)制都是采用位置計數(shù)法,它有三個要素:基數(shù)、數(shù)碼和位權(quán)。 例如,一個十進制數(shù)5609.021可以表示為: (5609.021)10=5103+6102+0101+ 9100+010-1+210-2+110-3。 對任意一個數(shù)S,假定其整數(shù)部分有m位,小數(shù)部分有n位,可用位置計數(shù)法表示為: Nm-1Nm-2N1N0 .N-1N-2N-n 它的值為:,舉例,2.1.1 數(shù)制及其轉(zhuǎn)換,(

3、1)二、八、十六進制轉(zhuǎn)換為十進制 轉(zhuǎn)換方法 :按權(quán)相加 (2)十進制轉(zhuǎn)換為二、八、十六進制 1)十進制整數(shù)轉(zhuǎn)換成二、八、十六進制數(shù) 方法:除基取余,逆排列。 2)十進制小數(shù)轉(zhuǎn)換成二、八、十六進制數(shù) 方法:乘基取整,2. 數(shù)制之間的轉(zhuǎn)換,舉例,舉例,舉例,(3)八、十六進制與二進制數(shù)的轉(zhuǎn)換 1)八、十六進制轉(zhuǎn)換成二進制數(shù) 方法:“1對3”或者“1對4” 。 2)二進制數(shù)轉(zhuǎn)換成八、十六進制 方法:以小數(shù)點為中心,分別向左右兩邊 “3對1”或者“4對1” 。,2. 數(shù)制之間的轉(zhuǎn)換,舉例,舉例,(1)二、八、十六進制轉(zhuǎn)換為十進制 轉(zhuǎn)換方法 :按權(quán)相加 (2)十進制轉(zhuǎn)換為二、八、十六進制 1)十進制整數(shù)

4、轉(zhuǎn)換成二、八、十六進制數(shù) 方法:除基取余,逆排列。 2)十進制小數(shù)轉(zhuǎn)換成二、八、十六進制數(shù) 方法:乘基取整,2. 數(shù)制之間的轉(zhuǎn)換,舉例,舉例,舉例,2.1.2 定點數(shù)表示,定點表示是約定機器中數(shù)據(jù)的小數(shù)點位置固定不變,用定點表示法表示的數(shù)據(jù)就是定點數(shù)。根據(jù)小數(shù)點位置固定在數(shù)據(jù)的最高位之前,或者是固定在最低位之后,又分為定點小數(shù)和定點整數(shù)。,舉例,2.1.2 定點數(shù)表示,最常用的有符號二進制數(shù)的表示方法是: 將二進制數(shù)的最高位作為符號位,該位置“0”表示正數(shù),該位置“1”表示負數(shù)。 對定點小數(shù)而言,其小數(shù)點位置隱含在符號位之后,仍然保持最高位為符號位。,1. 有符號二進制數(shù)據(jù)的表示,舉例,2.1

5、.2 定點數(shù)表示,2. 定點小數(shù),舉例,2.1.2 定點數(shù)表示,3. 定點整數(shù),舉例,2.1.3 浮點數(shù)表示,計算機中表示一個浮點數(shù)可由尾數(shù)和階碼及其符號位構(gòu)成。 階碼用二進制整數(shù)形式表示,指明小數(shù)點在數(shù)據(jù)中的位置,決定了浮點數(shù)的表示范圍;階碼的底數(shù),常約定為2。 尾數(shù)用定點小數(shù)形式表示,決定了浮點數(shù)的表示精度。,2.1.3 浮點數(shù)表示,舉例,2.1.3 浮點數(shù)表示,浮點數(shù)規(guī)格化對尾數(shù)表示的要求是: 正數(shù)0.1x xx 負數(shù)(原碼)1.1 x xx 負數(shù)(補碼)1.0 x xx 這種表示使得小數(shù)點后第一位成為有效數(shù)字位,盡可能增加了尾數(shù)的有效位數(shù)。 對于非規(guī)格化的浮點數(shù),可通過移位和調(diào)整階碼的

6、方法,使其成為規(guī)格化的浮點數(shù)。 在PC計算機中,浮點數(shù)采用IEEE 754標(biāo)準格式,舉例,2.1.4 BCD碼 (Binary Coded Decimal),二進制編碼的十進制表示,稱為二十進制碼:把每一位十進制數(shù)用4位二進制編碼表示。 8421BCD碼,2.1.4 BCD碼,BCD碼存儲時,可采用兩種不同形式: 壓縮的BCD碼:用一個字節(jié)存放兩位十進制數(shù)所對應(yīng)的BCD碼,其中十進制數(shù)的十位對應(yīng)高四位存放,個位對應(yīng)低四位,整個十進制數(shù)用一串BCD碼來表示。 非壓縮的BCD碼:用一個字節(jié)存放一位十進制數(shù),其中高四位置0,低四位存放BCD碼。,舉例,2.1.5 非數(shù)值數(shù)據(jù)的信息表示,America

7、n Standard Code for Information Interchange,美國信息交換標(biāo)準代碼 每個字符用8位二進制存儲表示,其中最高位置0或用于奇偶檢驗位,其余7位二進制編碼可表示128種不同的字符,包括32個控制符號和96個圖形符號,其中計算機終端能輸入并且可以顯示95個字符,如大小寫52個英文字母(AZ、az)、數(shù)字符0 9、通用的運算符和標(biāo)點符號等。 附錄1給出了標(biāo)準的ASCII碼表。,1. ASCII碼,舉例,2.1.5 非數(shù)值數(shù)據(jù)的信息表示,漢字的編碼主要有輸入碼、內(nèi)碼、字形碼以及交換碼等,2. 漢字編碼,舉例,2.1.5 非數(shù)值數(shù)據(jù)的信息表示,用兩個字節(jié)表示一個字符

8、,最多可表示65536個字符,涵蓋了世界上的幾乎所有的書面文字符號,包括27786個漢字。Unicode字符編碼中的前128個字符是標(biāo)準的ASCII碼字符,接下來是128個擴展的ASCII碼字符,這樣便將ASCII碼字符和其它的字符處理統(tǒng)一起來。Unicode字符編碼將成為未來全世界各國計算機系統(tǒng)的統(tǒng)一字符編碼。,3. Unicode編碼,2.1.6 校驗碼,校驗碼可分成兩大類,一類是檢錯碼;另一類是糾錯碼。 常使用的檢驗碼有三種:奇偶校驗碼、海明校驗碼和循環(huán)冗余校驗碼(cyclic redundancy check code ,CRC)。,2.1.6 校驗碼,最簡單的奇偶檢驗碼是通過在要校驗

9、的數(shù)據(jù)前面或后面增加一位校驗位的方法。如果規(guī)定為偶校驗,加上校驗位后,編碼中“1”的個數(shù)應(yīng)為偶數(shù)個;如果規(guī)定為奇校驗,則加上校驗位后,編碼中“1”的個數(shù)應(yīng)為奇數(shù)個。 奇偶檢驗碼編碼方法簡單,采用一位校驗位,只能根據(jù)“1”的個數(shù)是否符合奇數(shù)或偶數(shù)來檢測出是否有錯的情況,但無法判斷出錯位置。如果恰好同時有兩位出錯,還不能判斷有錯,因此檢錯能力受到限制。,1. 奇偶校驗碼,舉例,2.1.6 校驗碼,在傳送若干個帶有奇/偶校驗位數(shù)據(jù)后,再傳送一個縱向奇/偶校驗碼數(shù)據(jù),接收方根據(jù)對校驗碼的縱橫交叉檢查,可以進行出錯定位并糾錯。 縱橫式奇偶校驗碼的檢錯糾錯能力也存在誤判情況。,2. 縱橫式奇偶校驗碼,舉例

10、,數(shù)據(jù)0: 1 0 1 1 0 0 0 1 數(shù)據(jù)1: 0 1 1 0 1 0 1 1 出錯 數(shù)據(jù)2: 0 1 0 1 0 1 0 1 數(shù)據(jù)3: 1 1 0 0 1 0 1 0 數(shù)據(jù)4: 1 1 1 0 1 1 1 0 縱向校驗碼: 1 0 1 0 0 0 1 1 出錯,2.1.6 校驗碼,海明校驗碼也是以奇偶性為基礎(chǔ)來校驗數(shù)據(jù)的,其原理同縱橫式奇偶校驗碼,既能檢測錯誤也能糾正錯誤,但無須專門發(fā)送校驗碼數(shù)據(jù)。它是一種多重奇偶校驗檢錯系統(tǒng),通過在數(shù)據(jù)位之間增加多個校驗位,當(dāng)某一位出錯后,引起相關(guān)幾個校驗位的值發(fā)生變化,這樣不僅可以發(fā)現(xiàn)錯誤,還可知道錯誤的位置,進而糾正錯誤。,3. 海明校驗碼,2.

11、1.6 校驗碼,循環(huán)冗余校驗碼是在原始傳送的數(shù)據(jù)基礎(chǔ)上加上檢驗位后的信息碼,其基本思想是基于任何一種二進制編碼都可寫成一個多項式,用另外一個約定的多項式去除,所得到的余數(shù)就是它的校驗碼。發(fā)送端將被校驗的信息碼和校驗碼拼接構(gòu)成CRC碼。接收端收到后再用同一個約定的多項式去除,所得到的余數(shù)若為0,則傳送的數(shù)據(jù)沒有錯;否則表明出錯,由得到的余數(shù)即可定位出錯位,于是便可糾正錯誤。CRC碼廣泛應(yīng)用于計算機通信領(lǐng)域和磁介質(zhì)存儲系統(tǒng)中。,4. 循環(huán)冗余校驗碼,2.2 定點數(shù)的運算和運算器,2.2.1 二進制位運算,2.2.3 定點數(shù)的乘除法運算,2.2.2 定點數(shù)的加減法運算,2.2.1 二進制位運算,(1

12、)加法運算規(guī)則 0+0=0 0+1=1 1+0=1 1+1=0(產(chǎn)生進位) (2)減法運算規(guī)則 0-0=0 0-1=1(產(chǎn)生借位) 1-0=1 1-1=0 (3)乘法運算規(guī)則 00=0 01=0 10=0 11=1 (4)除法運算規(guī)則 二進制除法的計算類似十進制除法,也由減法、逐位上商等操作分步完成。,1. 算術(shù)運算,舉例,舉例,2.2.1 二進制位運算,(1)邏輯與 00=0 01=0 10=0 11=1 (2)邏輯或 00=0 01=1 10=1 11=1 (3)邏輯非 0=1 1=0 (4)邏輯異或 00=0 01=1 10=1 11=0,2. 邏輯運算,舉例,舉例,舉例,舉例,2.2.

13、2 定點數(shù)的加減法運算,現(xiàn)代計算機中都采用補碼方式實現(xiàn)加減法運算 (1)模的概念 計算機中有符號數(shù)有三種編碼方法:原碼、反碼和補碼。這三種碼表示時有一個前提,即設(shè)定機器用多少位來表示一個有符號二進制數(shù),這涉及到“?!钡母拍睢?對于n+1位二進制整數(shù): X0X1X2X3Xn 其中X0為符號位。規(guī)定裝二進制數(shù)只有n位,超過了n位的數(shù)就表示不了,只能對模取余了,這個模就是2n+1。,1. 有符號數(shù)的表示方法,2.2.2 定點數(shù)的加減法運算,(1)模的概念 對于n+1位二進制定點小數(shù)來說,可表示為: X0 . X1X2X3Xn 其中X0為符號位,權(quán)為20。符號位向更高位21的進位會丟失,即以21為模。

14、,1. 有符號數(shù)的表示方法,2.2.2 定點數(shù)的加減法運算,(2)原碼表示法 1)小數(shù)原碼的定義為: (mod 2) 式中X原是機器數(shù),X是真值。由原碼的定義可知,正數(shù)的原碼就是真值本身,負數(shù)的原碼就是1加真值的絕對值,這個1就成了負數(shù)原碼的符號位值。,舉例,2.2.2 定點數(shù)的加減法運算,(2)原碼表示法 2)整數(shù)原碼的定義為: (mod 2n+1) 式中X原是機器數(shù),X是真值。實際操作時,由負數(shù)求其原碼,只需將符號位置為1,真值絕對值不變即可。,舉例,2.2.2 定點數(shù)的加減法運算,(3)反碼表示法 1)小數(shù)反碼的定義為: (mod 2) 2)整數(shù)反碼的定義為: (mod 2n+1) 實際

15、操作時,負數(shù)的反碼X反也可直接對X原逐位求反,符號位不變來得到。,舉例,2.2.2 定點數(shù)的加減法運算,(3)補碼表示法 1)小數(shù)補碼的定義為: 2)整數(shù)補碼的定義為: 實際操作時,負數(shù)的補碼X補也可直接對X原求反后末位加1,符號位不變來得到。,舉例,2.2.2 定點數(shù)的加減法運算,3)由負數(shù)原碼直接求補碼的簡易方法 對要轉(zhuǎn)換的原碼自左向右考察,在遇上第一個碼1之前不改變(包括這個1),此后,逐位求反,符號位不變。,舉例,2.2.2 定點數(shù)的加減法運算,(5)原碼、反碼、補碼表示法小結(jié) 正數(shù)的原碼、反碼、補碼都相同。 0的原碼、反碼、補碼的表示(以5位二進制數(shù)為例): 0的原碼有兩種: +0:

16、00000,-0:10000 0的反碼有兩種: +0:00000,-0:11111 0的補碼只有一種:+0:00000,這樣補碼的表數(shù)范圍比其它兩種碼多了一個。 負數(shù)的原碼和反碼、補碼之間的轉(zhuǎn)換。 負數(shù)的原碼在符號位不變的前提下,通過逐位求反得到反碼,通過求反加1得到補碼。 反過來,在符號位不變的前提下,負數(shù)的反碼通過逐位求反可得到原碼。負數(shù)的補碼通過再一次求補碼的過程可得到原碼。,2.2.2 定點數(shù)的加減法運算,采用補碼進行加、減運算時,可以將加、減運算均通過加法實現(xiàn),運算規(guī)則如下: X+Y補=X補+Y補 XY補=X補+Y補 運算時,符號位和數(shù)值位一樣參加運算,若符號位有進位產(chǎn)生,則應(yīng)將進位

17、丟掉后才得到正確結(jié)果。 Y補的求法是:對Y補連同符號位一起求反加1。,2. 補碼加減法運算規(guī)則,舉例,舉例,運算結(jié)果超出了計算機所能表示的數(shù)據(jù)范圍稱為溢出。 當(dāng)兩個異號數(shù)相加或兩個同號數(shù)相減,其結(jié)果的絕對值只會減小,因此不會溢出;只有當(dāng)兩個同號數(shù)相加或者兩個異號數(shù)相減,其結(jié)果可能超出機器數(shù)所能表示的范圍,有可能產(chǎn)生溢出。 判斷溢出的方法較多,常用方法有三種:符號比較法、雙進位法和雙符號位法。,3. 溢出的產(chǎn)生及判斷方法, 符號比較法。該法是根據(jù)參加運算的兩個數(shù)的符號及運算結(jié)果的符號來判斷是否溢出。若兩個同號數(shù)相加,結(jié)果必為同號數(shù),否則肯定溢出;若兩個異號數(shù)相減,結(jié)果必與被減數(shù)同號,否則肯定溢出

18、。 雙進位法。設(shè)數(shù)值位的最高位向符號位的進位為C0,符號位在運算中向高一位的進位為C1,若C0C1=1,則有溢出。 雙符號法,又稱變形符號碼法。該法是對參加運算的數(shù)在運算過程中采用兩個符號位,同數(shù)值位一起參加運算,若運算結(jié)果的雙符號位不相同,則溢出。所謂雙符號位,是指正數(shù)的符號位為00,負數(shù)的符號位為11。,3. 溢出的產(chǎn)生及判斷方法,舉例,舉例,舉例,最基本的加法器是半加器和全加器。 1)半加器 實現(xiàn)兩個一位二進制數(shù)加法運算的電路稱為半加器,半加器只考慮本位的兩個數(shù)相加和向高位的進位而不考慮低位進位。若將A、B分別作為一位二進制數(shù),S表示A、B相加的“和”,C是相加產(chǎn)生的“進位”,半加器的真

19、值表如表2.3所示。,4. 基本的定點加減運算器,4. 基本的定點加減運算器,半加器的真值表 半加器的邏輯符號,2)全加器 全加器不僅考慮本位的兩個數(shù)相加和向高位的進位,還要將來自低位的“進位”進行相加。一位全加器的邏輯表達式為: 其中Ai,Bi為要相加的數(shù),Ci-1為進位輸入;Si為和,Ci為進位輸出;全加器有三個輸入端,二個輸出端,其真值表如表2.4所示。,4. 基本的定點加減運算器,2)全加器,可采用多個全加器并行相加、串行進位的方式來實現(xiàn)多位二進制數(shù)的加法運算。,2.2.3 定點數(shù)的乘除法運算,設(shè)A= 0.1001,B=0.1101,求AB。 所以, AB= +0.01110101,1

20、. 定點乘法運算,2.2.3 定點數(shù)的乘除法運算,從上述運算中可歸納以下結(jié)論: 符號位相同相乘為正,符號位不同相乘為負 兩個n位數(shù)相乘,其乘積最多有2n位 乘法運算從低位開始,逐位相乘,若乘數(shù)Y的某個二進制位為1,則得X,若為0,則得0。所得結(jié)果左移一位,最后一并求和,即為乘積的絕對值。,1. 定點乘法運算,原碼一位乘法的規(guī)則為: 1)參加運算的操作數(shù)取其絕對值。 2)取乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為“0”,不加被乘數(shù)(加0),得新部分積之和。 3)累加后的部分積以及乘數(shù)右移一位。 4)重復(fù)n次2)和3)。 5)符號位單獨處理,異或運算,同號為正,異號為負。,例2.22 已知

21、 x =0.1101,y = -0. 1001, 求 x原y原的值。 解: x原=0.1101 , |x|=0.1101 ,x0=0 y原=1.1001 , |y|=0.1001 ,y0=1 按原碼一位乘運算規(guī)則,乘積的符號位 Ps=x0y0= 01=1,原碼一位乘法運算器原理框圖,1.1 計算機的發(fā)展及其分類,2.2.3 定點數(shù)的乘除法運算,原碼除法同原碼乘法一樣,符號位是單獨處理的,由兩數(shù)符號位“異或”運算求得,商值由兩數(shù)絕對值相除求得,還需解決的主要問題是如何實現(xiàn)“心算”、 保存每位商和余數(shù)處理的問題。計算機通過被除數(shù)(或余數(shù))和除數(shù)絕對值的差值來確定商值,若差為正(夠減)上商1,差為負

22、(不夠減)上商0;將原部分商恢復(fù)后左移一位,新一位商直接保存到寄存器的最低位;針對余數(shù)的處理,采取除數(shù)不動,余數(shù)左移的方式。在實現(xiàn)除法運算時,還應(yīng)避免除數(shù)為0或被除數(shù)為0的情況。 原碼除法中針對余數(shù)的不同處理,分為恢復(fù)余數(shù)法和不恢復(fù)余數(shù)法(加減交替法)兩種。,2. 定點除法運算,1.1 計算機的發(fā)展及其分類,2.2.3 定點數(shù)的乘除法運算,原碼除法同原碼乘法一樣,符號位是單獨處理的,由兩數(shù)符號位“異或”運算求得,商值由兩數(shù)絕對值相除求得,還需解決的主要問題是如何實現(xiàn)“心算”、 保存每位商和余數(shù)處理的問題。計算機通過被除數(shù)(或余數(shù))和除數(shù)絕對值的差值來確定商值,若差為正(夠減)上商1,差為負(不

23、夠減)上商0;將原部分商恢復(fù)后左移一位,新一位商直接保存到寄存器的最低位;針對余數(shù)的處理,采取除數(shù)不動,余數(shù)左移的方式。在實現(xiàn)除法運算時,還應(yīng)避免除數(shù)為0或被除數(shù)為0的情況。,2. 定點除法運算,2.3 浮點數(shù)的運算和運算器,2.3.1 IEEE 754標(biāo)準與移碼表示法,2.3.3 浮點數(shù)的乘除法運算,2.3.2 浮點數(shù)的加減法運算,2.3.1 IEEE 754標(biāo)準與移碼表示法,IEEE 754的階碼用移碼表示,尾數(shù)用原碼表示,尾數(shù)的最高位(整數(shù)位,權(quán)為20)規(guī)格化為1,且規(guī)定這一位隱含不給出,以便尾數(shù)有更多的有效位,具有最高的精度。,1. IEEE 754標(biāo)準,2.3.1 IEEE 754標(biāo)

24、準與移碼表示法,IEEE 754有三種具體格式,2.3.1 IEEE 754標(biāo)準與移碼表示法,移碼的定義是: X移=2n+X -2-nX2n 移碼和補碼之間存在如下關(guān)系: X移=2n+X = 2n+ X補 0X2n X移=2n+X =(2n+1+ X )- 2 n = X補 - 2 n -2-nX0 也就是說,將整數(shù)補碼變?yōu)橐拼a的方法是只要將補碼的符號位取反即可。,2. 移碼表示法,舉例,例2.24 某計算機采用IEEE 754的單精度格式,二進制碼為C2300000H,計算該浮點數(shù)的真值。 解:展開二進制碼,區(qū)分出三個字段的編碼(以逗號分開): 1, 1 00 0010 0, 011 000

25、0 0000 0000 0000 0000 數(shù)符為1,該浮點數(shù)是負數(shù);階碼為移碼1 00 0010 0,其補碼應(yīng)為00000100 尾數(shù)為原碼,尾數(shù)=-1.011 0000 0000 0000 0000 0000,這里添上了隱含的1。 故得該浮點數(shù)的二進制真值為: -1. 0112+100= -10110,即十進制數(shù)-22。,2.3.2 浮點數(shù)的加減法運算,1. 浮點數(shù)的加減法運算規(guī)則,設(shè)有兩個浮點數(shù)A和B:,兩浮點數(shù)進行加減的運算規(guī)則是:,階碼和尾數(shù)以定點整數(shù)和定點小數(shù)形式表示,在浮點數(shù)的運算中是分別進行的,所以浮點算術(shù)運算規(guī)則可歸結(jié)為定點運算規(guī)則及運算結(jié)果的規(guī)格化操作。,2. 浮點數(shù)的加減

26、法運算步驟,已知:X=+0.1101012-100,Y=-0.1010112-011,求X+Y和X-Y。 這里,Xw補= 0.110101,Xe移= 0 100,Yw補=1.010101,Ye移= 0 101,,2. 浮點數(shù)的加減法運算步驟,第二步:尾數(shù)求和或差 按定點加(減)運算規(guī)則將階碼相同的兩個尾數(shù)進行運算,這里采用雙符號位進行: Xw +Yw補=Xw補+Yw補 = 00.011010 +11.010101=11.101111 Xw -Yw補= Xw補-Yw補 = 00.011010 -11.010101 =01.000101 所以: X -Y補=11 101,01.000101,2.

27、浮點數(shù)的加減法運算步驟,第四步:舍入 對階和右規(guī)都會使尾數(shù)右移,造成低位數(shù)據(jù)的丟失,產(chǎn)生一定誤差,需要進行舍入處理。常用的舍入方法有: 1)截斷法,將尾數(shù)超出機器字長的部分截去。最簡單,不需硬件,也不占用時間,但是積累可能誤差很大,故很少使用。 2)恒置法,將多余數(shù)據(jù)位丟掉,尾數(shù)末位置“1”,最大誤差情況是舍去數(shù)據(jù)最高位“1”,這種方法簡單易行,應(yīng)用廣泛。 3)0舍1入法,若多余數(shù)據(jù)位最高位為“0”,則保持剩余尾數(shù)末位不變;若為“1”,尾數(shù)末位加“1”,最大誤差為最低位一半,這種方法誤差較小,但實現(xiàn)比恒置法復(fù)雜。 4)查表舍入法,此法只考察尾數(shù)有效字長的最低n位和超出尾數(shù)有效字長部分的最高k位

28、,根據(jù)它們的情況列出一張對應(yīng)的舍入處理表,通過查表直接進行舍入操作。,查表舍入法的主要優(yōu)點是可以按照實際情況來科學(xué)地安排舍入規(guī)則,不僅使最大誤差減至很小,而且使積累誤差達到完全平衡,其精度與舍入法相當(dāng),而誤差更小。通常,舍入處理表可存放在ROM或PLA中,增加成本不多。查表無需計算,便捷,速度快,又通過改變得到誤差控制,相對其它下溢處理方法優(yōu)勢明顯,是一種很有前途的浮點運算尾數(shù)下溢處理方法。 本例在對階和規(guī)格化處理中都有舍入情況,采取了最簡單的截斷法處理。所以最后結(jié)果為: 由 X +Y補=11 100,11.011110 得到 X+Y= -0.1000102-100 由 X -Y補=11 11

29、0,00.100010 得到 X-Y= +0.1000102-010,第五步:溢出判斷 浮點數(shù)經(jīng)過上述步驟后,其運算結(jié)果是否超出了浮點數(shù)所能表示的范圍,主要考察階碼是否溢出。溢出有兩種: 1)上溢,階碼部分的結(jié)果超出了階碼所能表示的最大范圍,結(jié)果視為無窮大,計算機要作相應(yīng)處理。 2)下溢,階碼部分的結(jié)果小于了階碼所能表示的最小范圍,計算機將其做為機器零。,2.3.3 浮點數(shù)的乘除法運算,1. 浮點數(shù)的乘除法運算規(guī)則,設(shè)有兩個浮點數(shù)A和B,,兩浮點數(shù)進行乘法的運算規(guī)則是:,乘積的尾數(shù)是相乘兩數(shù)的尾數(shù)之積, 乘積的階碼是相乘兩數(shù)的階碼之和。,2.3.3 浮點數(shù)的乘除法運算,1. 浮點數(shù)的乘除法運算

30、規(guī)則,設(shè)有兩個浮點數(shù)A和B,,兩浮點數(shù)進行除法的運算規(guī)則是:,商的尾數(shù)是相除兩數(shù)的尾數(shù)之商, 商的階碼是相除兩數(shù)的階碼之差。,2. 浮點數(shù)的乘除法運算步驟,(1)檢測操作數(shù)是否為0。 1)兩浮點數(shù)相乘時,若有一個數(shù)為0,則乘積為0;若均不為0,可進行乘法運算 2)兩浮點數(shù)相除時,若被除數(shù)為0,則商為0;若除數(shù)為0,則商為無窮大,另作異常處理;若均不為0,則可進行除法運算。 (2)階碼處理。 1)兩浮點數(shù)相乘,其乘積的階碼為兩浮點數(shù)階碼之和,可采用定點整數(shù)加法實現(xiàn)。 2)兩浮點數(shù)相除,其商的階碼為被除數(shù)與除數(shù)階碼之差,可采用定點整數(shù)減法實現(xiàn)。,2. 浮點數(shù)的乘除法運算步驟,(3)尾數(shù)處理。 1)

31、兩浮點數(shù)相乘,其乘積的尾數(shù)為兩浮點數(shù)尾數(shù)之積,可采用定點小數(shù)乘法實現(xiàn)。 2)兩浮點數(shù)相除,其商的尾數(shù)為被除數(shù)與除數(shù)尾數(shù)之商,可采用定點小數(shù)除法實現(xiàn)。 浮點數(shù)乘除法運算中同樣需要規(guī)格化和舍入處理,對于乘法運算,由于參加運算的是規(guī)格化的浮點數(shù),因此乘積尾數(shù)的絕對值大于等于1/4,所以規(guī)格化時乘法左規(guī)最多只用一次。但是對于除法運算來說,由于定點運算要求被除數(shù)的絕對值大于除數(shù)的決定值,所以浮點數(shù)尾數(shù)運算使用定點規(guī)則運算時,需先調(diào)整尾數(shù);這樣運算后導(dǎo)致所得商為規(guī)格化數(shù),因此不需要調(diào)整。對于舍入的處理與浮點數(shù)的加減法運算相同。,2.3.3 浮點數(shù)的乘除法運算,3. 浮點運算器,浮點運算器可由階碼部件和尾數(shù)

32、部件兩個定點運算部件組成。階碼運算部件是個定點整數(shù)運算部件,用來完成階碼的運算以及階碼的調(diào)整等;尾數(shù)運算部件是一個定點小數(shù)運算部件,用來完成尾數(shù)的四則運算以及左、右移位等。顯然,浮點運算器的硬件配置比定點運算器復(fù)雜。,2.4 運算器的組成和優(yōu)化,2.4.1 運算器的優(yōu)化,2.4.2 運算器的基本結(jié)構(gòu)及其發(fā)展,2.4.1 運算器的優(yōu)化,運算器常被稱為算術(shù)邏輯單元ALU(Arithmetic Logic Unit)。 進行加、減、乘和除這些算術(shù)運算,都以加法運算為基礎(chǔ)實現(xiàn),因此加法器是運算器的核心部件,加快加法器的運算速度就能全面提高運算器的速度。 超前進位加法器,就是在做加法運算的同時,將各位數(shù)

33、的進位數(shù)也算出來,從而實現(xiàn)并行進位的加法器。,以4位加法為例,根據(jù)一位全加器的進位邏輯表達式: Ci = AiBi + BiCi-1 + AiCi-1 = AiBi+ (Bi + Ai) Ci-1 = Gi + PiCi-1 其中,Gi= AiBi,Pi= BiAi ,式中Bi + Ai是本位加,故用更貼切。 于是可得到各位的進位輸出表達式: C0 = G0 + P0C-1 C1 = G1 + P1C0 = G1 + P1(G0+P0C-1) = G1 + P1G0 + P1P0C-1 C2 = G2 + P2C1 = G2 + P2G1 + P2P1G0+ P2P1P0C-1 C3 = G3 + P3C2 = G3 + P3G2 + P3P2G1 + P3P2P1G0 + P3P2P1P0C-1 可見,只要A0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論