計算機組成原理第六章_第1頁
計算機組成原理第六章_第2頁
計算機組成原理第六章_第3頁
計算機組成原理第六章_第4頁
計算機組成原理第六章_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三篇 中央處理器(CPU) 第第 6 6 章章 計算機的運算方法計算機的運算方法 *一、數(shù)據(jù)的編碼與表示一、數(shù)據(jù)的編碼與表示 *二、定點數(shù)的算術(shù)運算二、定點數(shù)的算術(shù)運算 *三、浮點四則運算三、浮點四則運算 *四、邏輯運算四、邏輯運算 數(shù)據(jù)表示數(shù)據(jù)表示 運算方法運算方法 一、數(shù)據(jù)的編碼與表示一、數(shù)據(jù)的編碼與表示 數(shù)據(jù)數(shù)據(jù) 邏輯數(shù)據(jù)邏輯數(shù)據(jù) 檢錯糾錯碼檢錯糾錯碼 字符字符 字符串字符串 漢字漢字 數(shù)值數(shù)值 文字、符號文字、符號 語音語音圖形圖形圖像圖像 各種進制各種進制 BCD碼碼 定點定點 浮點浮點 邏輯型數(shù)據(jù)邏輯型數(shù)據(jù) 邏輯型數(shù)據(jù)只有兩個值:邏輯型數(shù)據(jù)只有兩個值:真和假真和假,正好可以用二進

2、,正好可以用二進 制碼的兩個符號分別表示,制碼的兩個符號分別表示, 例如例如 1 表示表示 真真 則則 0 表示表示 假假 不必使用另外的編碼規(guī)則。不必使用另外的編碼規(guī)則。 對邏輯型數(shù)據(jù)可以執(zhí)行邏輯的對邏輯型數(shù)據(jù)可以執(zhí)行邏輯的 與、或、非與、或、非等基本邏等基本邏 輯運算。輯運算。 字符型數(shù)據(jù)的表示字符型數(shù)據(jù)的表示 字符作為人字符作為人機聯(lián)系的媒介,指字母、數(shù)字、機聯(lián)系的媒介,指字母、數(shù)字、 運算符等西文字信息。當(dāng)前的西文字符集由運算符等西文字信息。當(dāng)前的西文字符集由 128 個符號組成,通常用個符號組成,通常用 8 位二進制編碼,即位二進制編碼,即用一個用一個 字節(jié)來表示每一個符號字節(jié)來表示

3、每一個符號,當(dāng)前較多通用的標(biāo)準(zhǔn)字,當(dāng)前較多通用的標(biāo)準(zhǔn)字 符集是符集是ASCII 碼碼,ASCII碼字符集具體編碼如下表碼字符集具體編碼如下表 所示:所示: ASCII字符編碼集字符編碼集 b6 b5 b4 000 001 010 011 100 101 110 111 b3 b2 b1 b0 0000 NUL DLE SP 0 P , p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110

4、 ACK SYN K k 1100 FF FS , N n 1111 SI US / ? O _ o DEL ASCII碼碼的機內(nèi)表示的機內(nèi)表示 采用一個字節(jié)表示采用一個字節(jié)表示ASCII碼時,最高位的處碼時,最高位的處 理方法:理方法: (1 1)最高位)最高位不用不用,即恒為,即恒為“0”0”; (2 2)最高位用于)最高位用于奇偶校驗位奇偶校驗位; (3 3)若采用擴展)若采用擴展ASCIIASCII碼方案時,最高位也用來碼方案時,最高位也用來 表示表示字符編碼字符編碼,此時,可表示,此時,可表示256256種符號。種符號。 字符串的存放:字符串的存放: 字符串是指字符串是指連續(xù)連續(xù)的一

5、串字符,它們占據(jù)主存的一串字符,它們占據(jù)主存 中中連續(xù)連續(xù)的多個字節(jié),每個字節(jié)存放一個字符,對的多個字節(jié),每個字節(jié)存放一個字符,對 一個主存字的多個字節(jié),有一個主存字的多個字節(jié),有按從低位到高位按從低位到高位字節(jié)字節(jié) 次序存放的,也有按次序存放的,也有按從高位到低位從高位到低位字節(jié)次序存放字節(jié)次序存放 的。例如:的。例如:IF AB THEN READ(C)就可以有如就可以有如 下不同的存放方式:下不同的存放方式: 字符串的表示與存儲字符串的表示與存儲 I F A A F I B T T B 假定每個字假定每個字 H E N N E H 由由 4 個字節(jié)個字節(jié) R E A D D A E R

6、組成組成 ( C ) ) C ( 漢字的表示漢字的表示 在計算機中表示漢字通常涉及以下幾種漢字編碼:在計算機中表示漢字通常涉及以下幾種漢字編碼: (1)漢字輸入碼)漢字輸入碼 為直接使用西文標(biāo)準(zhǔn)鍵盤把漢字為直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入輸入到計算到計算 機而設(shè)計。機而設(shè)計。 (2)漢字機內(nèi)碼)漢字機內(nèi)碼 漢字信息在計算機內(nèi)部存儲、處理和傳送所采漢字信息在計算機內(nèi)部存儲、處理和傳送所采 用的編碼。通常采用國標(biāo)碼。用的編碼。通常采用國標(biāo)碼。 (3)漢字字模碼)漢字字模碼 用于輸出設(shè)備用于輸出設(shè)備輸出輸出漢字而設(shè)計的字形編碼漢字而設(shè)計的字形編碼。 漢字的機內(nèi)表示漢字的機內(nèi)表示 通常用通常用兩個字節(jié)兩

7、個字節(jié)表示一個漢字。表示一個漢字。 漢字內(nèi)碼的識別方法:漢字內(nèi)碼的識別方法: (1 1)若將若將ASCIIASCII碼字節(jié)的高位設(shè)為碼字節(jié)的高位設(shè)為“0”0”,則漢字兩,則漢字兩 個字節(jié)的高位個字節(jié)的高位均為均為“1”1”; (2 2)若若ASCIIASCII碼字節(jié)最高位用于奇偶校驗碼或擴充碼,碼字節(jié)最高位用于奇偶校驗碼或擴充碼, 則需要三個字節(jié)表示漢字,第一個字節(jié)作為漢字的則需要三個字節(jié)表示漢字,第一個字節(jié)作為漢字的標(biāo)標(biāo) 識符識符。 幾種常用的數(shù)制及其轉(zhuǎn)換幾種常用的數(shù)制及其轉(zhuǎn)換 N進制數(shù)可用進制數(shù)可用表示;表示; 溫故而知新:二進制、十進制、八進制、十六進溫故而知新:二進制、十進制、八進制、

8、十六進 制的表示方法及其相互轉(zhuǎn)換。制的表示方法及其相互轉(zhuǎn)換。 二二十進制編碼(十進制編碼(BCD編碼)編碼) BCD編碼,編碼,用用四位四位二進制表示一位十進制,有多二進制表示一位十進制,有多 種方案,種方案, 例如:例如: 84218421碼,碼,54215421碼,碼,24212421碼,余碼,余3 3碼,格雷碼。碼,格雷碼。 又可區(qū)分為:又可區(qū)分為: 有權(quán)碼:有權(quán)碼:四個二進制位均有指定的位權(quán)。四個二進制位均有指定的位權(quán)。 無權(quán)碼:無權(quán)碼:二進制編碼各位無指定的位權(quán)。二進制編碼各位無指定的位權(quán)。 有權(quán)碼有權(quán)碼 無權(quán)碼無權(quán)碼 0 0000 0000 0011 0000 1 0001 000

9、1 0100 0001 2 0010 0010 0101 0011 3 0011 0011 0110 0010 4 0100 0100 0111 0110 5 0101 1011 1000 0111 6 0110 1100 1001 0101 7 0111 1101 1010 0100 8 1000 1110 1011 1100 9 1001 1111 1100 1101 8421 余余3碼碼 2421格雷碼格雷碼 + 0. 0 0 0 0 0 0 1 1 0 0 0 1 0 0. 1 1 0 0 0 1 0 0. 1 0 0 0 0 0 1 + ? 思考:小數(shù)點位置不同,運算如何實現(xiàn)?思考:

10、小數(shù)點位置不同,運算如何實現(xiàn)? 手工運算:手工運算: . 符號位符號位 1 0. 定點數(shù)運算中小數(shù)點的位置無關(guān),小數(shù)點無需存放定點數(shù)運算中小數(shù)點的位置無關(guān),小數(shù)點無需存放 數(shù)值型數(shù)值型數(shù)據(jù)的機內(nèi)表示形式數(shù)據(jù)的機內(nèi)表示形式 隱藏隱藏 定點小數(shù)定點小數(shù): N = Nf . N1 N2 Nn 定點整數(shù)定點整數(shù): N = Nf N1 N2 Nn. 浮點數(shù)浮點數(shù): N = jf j1 j2 . Jm ; ; Sf . S1 S2 . Sn 隱藏隱藏 隱藏隱藏 定點小數(shù)定點小數(shù)表示表示: Xf X-1 X-2 X -n 特點:特點:原碼原碼為符號位加數(shù)的為符號位加數(shù)的絕對值絕對值,0正正1負(fù)負(fù) 原碼零原碼

11、零有兩個編碼,有兩個編碼,+0和和 -0編碼不同編碼不同 X 1 X=1+|X| -1 X 0 0 X 1 定義: X原 = 原碼原碼的定的定 義義 實例:X1 = 0.10110 -0.10110 0.0000 X1原 = 0.10110 1.10110 0.0000 1.0000 n 定義: X原 = 定點整數(shù)定點整數(shù)表示表示: Xf Xn Xn-1 X 1 0,X 2n-X=2n+|X| 0 X 2n -2n X 0 2n=1 0 0 0 實例:X1 = 10110 -10110 0 X1原 = 010110 110110 0,0000 1,0000 定點小數(shù)定點小數(shù)反碼的定義 特點:負(fù)

12、數(shù)特點:負(fù)數(shù)反碼反碼為符號位跟數(shù)每位的反,為符號位跟數(shù)每位的反,0正正1負(fù)負(fù) 反碼反碼零有兩個編碼,零有兩個編碼,+0 和和 - -0 的編碼不同的編碼不同 X (2-2-n)+X -1 X 0 0 X 1 定義:X反 = 實例:X1 = 0.10110 -0.10110 0.0000 X1反 = 0.10110 1.01001 0.0000 1.1111 n+1 定義: X反 = 定點整數(shù)的定點整數(shù)的反碼反碼表示表示 0,X 2n+1-1+X 0 X 2n -2n X 0 2n+1=1 0 0 0 定點小數(shù)表示定點小數(shù)表示: Xf X-1 X-2 X -n 特點:特點: 補碼補碼最高一位為符

13、號位,最高一位為符號位,0正正1負(fù)負(fù) 補碼表示補碼表示為模加上負(fù)數(shù)本身為模加上負(fù)數(shù)本身 補碼補碼零有唯一編碼,故補碼還可以表示零有唯一編碼,故補碼還可以表示 -1 補碼補碼能很好用于加減(乘除)運算能很好用于加減(乘除)運算 補碼補碼的引入;鐘表;負(fù)數(shù)的正補數(shù)。的引入;鐘表;負(fù)數(shù)的正補數(shù)。 實例:X1 = 0.10110 -0.10110 0.0000 -0.0000 -1.0000 X1補 = 0.10110 1.01010 0.0000 0.0000 1.0000 n+1 定義: X補 = 定點整數(shù)表示定點整數(shù)表示: Xf Xn Xn-1 X 1 0,X 2n+1+X 0 X 2n 2n

14、X 0 2n+1=1 0 0 0 整數(shù)整數(shù)的原碼、反碼和補碼表示的原碼、反碼和補碼表示 與定點小數(shù)的三種表示基本相同,差別僅表現(xiàn)在與定點小數(shù)的三種表示基本相同,差別僅表現(xiàn)在小數(shù)點小數(shù)點 的位置,整數(shù)的小數(shù)點在最低數(shù)值位的右側(cè)。的位置,整數(shù)的小數(shù)點在最低數(shù)值位的右側(cè)。 整數(shù)中用整數(shù)中用“,”隔開符號位與數(shù)值位。隔開符號位與數(shù)值位。 例如:五位整數(shù)的編碼:例如:五位整數(shù)的編碼: X1 = +01110 X1原 原= 0,01110 X1反反= 0,01110 X1補補= 0,01110 X2 = - 01110 X2原 原= 1,01110 X2反反= 1,10001 X2補補= 1,10010

15、原、反、補碼表示小結(jié)原、反、補碼表示小結(jié) 正數(shù)的正數(shù)的 原碼、反碼、補碼表示原碼、反碼、補碼表示均相同均相同,符號位為,符號位為 0,數(shù)值位等,數(shù)值位等 于數(shù)的于數(shù)的真值真值。 零的原碼和反碼均有零的原碼和反碼均有2個個編碼,補碼只有編碼,補碼只有1個編碼個編碼 負(fù)數(shù)的原碼、反碼、補碼表示負(fù)數(shù)的原碼、反碼、補碼表示均不同均不同, 符號位為符號位為 1,數(shù)值位:原碼為數(shù)的絕對值;,數(shù)值位:原碼為數(shù)的絕對值; 符號位為符號位為 1,數(shù)值位:反碼為每一位均取反碼;,數(shù)值位:反碼為每一位均取反碼; 符號位為符號位為 1,數(shù)值位:補碼為反碼再在最低位,數(shù)值位:補碼為反碼再在最低位+1; n+1n+1位位

16、移碼移碼:Xf XXf Xn n X Xn-1 n-1 X X 1 1 1 無小數(shù)表示形式無小數(shù)表示形式 2定義定義: X移 移 = 2n+X -2n X = 1/r,稱滿足這種表示要求的浮點數(shù)為,稱滿足這種表示要求的浮點數(shù)為規(guī)格化表示規(guī)格化表示。 把不滿足這一表示要求的尾數(shù),變成滿足這一要把不滿足這一表示要求的尾數(shù),變成滿足這一要 求的尾數(shù)的操作過程,叫作浮點數(shù)的求的尾數(shù)的操作過程,叫作浮點數(shù)的規(guī)格化處理規(guī)格化處理,通,通 過過尾數(shù)移位和修改階碼尾數(shù)移位和修改階碼實現(xiàn)。實現(xiàn)。 X = S rj X浮 浮 = jf j1 j2 . Jm Sf S1 S2 . Sn 規(guī)格化的浮點數(shù)尾數(shù)形式(以二

17、進制數(shù)為例):規(guī)格化的浮點數(shù)尾數(shù)形式(以二進制數(shù)為例): 當(dāng)尾數(shù)用原碼表示時,當(dāng)尾數(shù)用原碼表示時, S原 原 = 0.1xxx 或 或1.1xxx 當(dāng)尾數(shù)用補碼表示時,當(dāng)尾數(shù)用補碼表示時, S補 補 = 0.1xxx 或 或1.0 xxx 例例1:判斷下列數(shù)的尾數(shù)表示是否為規(guī)格化的表示形判斷下列數(shù)的尾數(shù)表示是否為規(guī)格化的表示形 式式 -0.0111111 X原 原=1.0111111 -0.0111111 X補 補=1.1000001 -0.1000000 X原 原=1.1000000 -0.1000001 X補 補=1.0111111 浮點數(shù)在計算機內(nèi)的表示浮點數(shù)在計算機內(nèi)的表示 IEEE

18、標(biāo)準(zhǔn):標(biāo)準(zhǔn):階碼用移碼,基數(shù)為階碼用移碼,基數(shù)為2;尾數(shù)用原;尾數(shù)用原 碼碼 X = S rj X 浮 浮 = jf j1 j2 . Jm Sf S1 S2 . Sn 定點數(shù)與浮點數(shù)的定點數(shù)與浮點數(shù)的比較比較: (1)數(shù)位相同時,浮點數(shù)比定點數(shù)表示范圍大得多;數(shù)位相同時,浮點數(shù)比定點數(shù)表示范圍大得多; (2)浮點數(shù)為規(guī)格化數(shù)時,精度遠(yuǎn)比定點數(shù)高;浮點數(shù)為規(guī)格化數(shù)時,精度遠(yuǎn)比定點數(shù)高; (3)浮點運算步驟比定點數(shù)多,速度比定點數(shù)低;浮點運算步驟比定點數(shù)多,速度比定點數(shù)低; (4)判斷溢出的方法不同。判斷溢出的方法不同。 IEEE 754 IEEE 754 標(biāo)準(zhǔn)浮點數(shù)表示格式標(biāo)準(zhǔn)浮點數(shù)表示格式 X

19、 浮 浮 = Sf jf j1 j2 . Jm S1 S2 . Sn 符號位符號位Sf 階碼位階碼位 尾數(shù)數(shù)碼位尾數(shù)數(shù)碼位 總位數(shù)總位數(shù) 短浮點數(shù)短浮點數(shù): 1 8 23 32 長浮點數(shù)長浮點數(shù): 1 11 52 64 臨時浮點數(shù)臨時浮點數(shù): 1 15 64 80 X = S rj 例例2:設(shè)浮點數(shù)字長設(shè)浮點數(shù)字長16位,其中階碼位,其中階碼5位(含位(含1位位 階符),尾數(shù)階符),尾數(shù)11位(含位(含1位數(shù)符),將十進制數(shù)位數(shù)符),將十進制數(shù) +13/128寫成二進制定點數(shù)和浮點數(shù),并分別寫寫成二進制定點數(shù)和浮點數(shù),并分別寫 出它在定點機和浮點機中的機器數(shù)形式。出它在定點機和浮點機中的機器數(shù)

20、形式。 例例3:將十進制數(shù)將十進制數(shù)-54表示成二進制定點數(shù)和浮點數(shù),表示成二進制定點數(shù)和浮點數(shù), 并寫出它在定點機和浮點機中的機器數(shù)形式。并寫出它在定點機和浮點機中的機器數(shù)形式。 (其它要求同上例)(其它要求同上例) 例例4:設(shè)浮點數(shù)字長設(shè)浮點數(shù)字長16位,其中階碼位,其中階碼5位(含位(含1位階位階 符),尾數(shù)符),尾數(shù)11位(含位(含1位數(shù)符),寫出位數(shù)符),寫出-53/512對對 應(yīng)的浮點規(guī)格化數(shù)的原碼、補碼、反碼和階碼用應(yīng)的浮點規(guī)格化數(shù)的原碼、補碼、反碼和階碼用 移碼,尾數(shù)用補碼的形式。移碼,尾數(shù)用補碼的形式。 二、定點數(shù)的算術(shù)運算二、定點數(shù)的算術(shù)運算 (1) 移位移位運算運算 (2

21、) 補碼補碼 加減法運算加減法運算 (3) 原碼原碼一位乘法運算一位乘法運算 原碼原碼一位除法運算一位除法運算 補碼補碼一位乘法運算一位乘法運算 補碼補碼一位除法運算一位除法運算 (4) 補碼補碼二位乘法運算二位乘法運算 (5) 快速快速乘除法運算方法乘除法運算方法 移位運算的實現(xiàn)移位運算的實現(xiàn) 移位運算移位運算,用于提高某些運算的速度或作為乘除法運算的,用于提高某些運算的速度或作為乘除法運算的 子運算。分為算術(shù)移位和邏輯移位。子運算。分為算術(shù)移位和邏輯移位。 算術(shù)移位算術(shù)移位: : 對對有符號數(shù)有符號數(shù)進行的移位,進行的移位,小數(shù)點位置不變小數(shù)點位置不變。 規(guī)則規(guī)則: : (1) (1) 移

22、位后移位后符號位符號位不變;不變; (2) (2) 不同碼制機器數(shù)移位后空位填補規(guī)則,如不同碼制機器數(shù)移位后空位填補規(guī)則,如 下表:下表: 正數(shù)正數(shù) 碼碼 制制 原碼、補碼、反碼原碼、補碼、反碼 原原 碼碼 補補 碼碼 反反 碼碼 右移填補代碼右移填補代碼 0 0 1 1 負(fù)負(fù) 數(shù)數(shù) 左移填補代碼左移填補代碼 0 0 0 1 例例5 5:設(shè)機器數(shù)字長:設(shè)機器數(shù)字長8 8位(含一位符號位),位(含一位符號位), 若若A=A=6262,寫出三種機器數(shù)左右移一位和,寫出三種機器數(shù)左右移一位和 兩位后的表示形式以及相應(yīng)的真值,并分兩位后的表示形式以及相應(yīng)的真值,并分 析結(jié)果的正確性。析結(jié)果的正確性。

23、算術(shù)左右移規(guī)律總結(jié): 對于正數(shù),三種機器數(shù)移位后符號位均不變,左移時最高 位丟1,結(jié)果出錯;右移時,最低位丟1,影響精度。 對于負(fù)數(shù),三種機器數(shù)移位后符號位均不變, 負(fù)數(shù)原碼,左移高位丟1,出錯,右移低位丟1,影響精度。 負(fù)數(shù)補碼,左移高位丟0,出錯,右移低位丟1,影響精度。 負(fù)數(shù)反碼,左移高位丟0,出錯,右移低位丟0,影響精度。 邏輯移位(無符號數(shù)的移位)邏輯移位(無符號數(shù)的移位) 左移左移1位位 右移右移1位位 左移左移2位位 右移右移2位位 無符號數(shù)無符號數(shù) 規(guī)律:規(guī)律:無符號數(shù)的左右移位,空出來的位都補無符號數(shù)的左右移位,空出來的位都補0. 補碼加減法的實現(xiàn)(以定點小數(shù)為例)補碼加減法

24、的實現(xiàn)(以定點小數(shù)為例) 基本公式:基本公式:X Y補 補 = X補補 Y補補 ( (mod 2)小數(shù))小數(shù) X Y補 補 = X補補 Y補補 ( (mod 2n+1)整數(shù))整數(shù) 特點特點: (1)符號位)符號位參與參與運算,結(jié)果符號位通過運算自動運算,結(jié)果符號位通過運算自動 產(chǎn)生;產(chǎn)生; (2)運算實際上為)運算實際上為“模運算模運算”,因此,運算過程,因此,運算過程 中可能產(chǎn)生中可能產(chǎn)生模溢出模溢出,丟掉模后,不影響運算結(jié)果。,丟掉模后,不影響運算結(jié)果。 例例6:已知:已知A=0.1011,B=-0.0101.求求A+B補。補。 例例7:已知:已知A=-1001,B=-0101.求求A+B

25、補。補。 例例8:設(shè)機器數(shù)字長:設(shè)機器數(shù)字長8位,其中位,其中1位為符號位,位為符號位, 若若A=+15,B=+24,求,求A-B補,并還原成補,并還原成 真值。真值。 補碼加減法的溢出補碼加減法的溢出 溢出:溢出:運算結(jié)果超出數(shù)據(jù)的表示范圍。分為上溢和下運算結(jié)果超出數(shù)據(jù)的表示范圍。分為上溢和下 溢(或稱溢(或稱正溢出和負(fù)溢出正溢出和負(fù)溢出)。)。 例如:例如:X = +0.1011 Y = +0.1101 X補 補 = 0.1011, Y補補 = 0.1101 X+Y補 補 = X補補 + Y補補 = 0.1011 + 0.1101 = 1.0100 正溢出正溢出 溢出的后果是結(jié)果的最高數(shù)值

26、位溢出的后果是結(jié)果的最高數(shù)值位侵入侵入符號位,使符號符號位,使符號 位遭到破壞。在計算機中,溢出是作為位遭到破壞。在計算機中,溢出是作為出錯出錯處理的。處理的。 補碼加減法的溢出判別補碼加減法的溢出判別 溢出判斷:兩種方法溢出判斷:兩種方法 (1)一位)一位符號位判斷法:對于加法,只有符號位判斷法:對于加法,只有正加正(正溢出)正加正(正溢出) 或負(fù)加負(fù)(負(fù)溢出)或負(fù)加負(fù)(負(fù)溢出)的情況可能產(chǎn)生溢出,判斷原則是:結(jié)果的情況可能產(chǎn)生溢出,判斷原則是:結(jié)果 符號位與源操作數(shù)相同則不溢出,不相同則溢出,對于減法,符號位與源操作數(shù)相同則不溢出,不相同則溢出,對于減法, 只有符號不同的倆數(shù)相減才可能溢出

27、,若有溢出正減負(fù)為正溢只有符號不同的倆數(shù)相減才可能溢出,若有溢出正減負(fù)為正溢 出,負(fù)減正為負(fù)溢出。出,負(fù)減正為負(fù)溢出。 (2 2)兩位)兩位符號位判斷法:即符號位判斷法:即變形補碼法變形補碼法判別判別,結(jié)果的雙符號,結(jié)果的雙符號 位的值為位的值為 0101或或1010為溢出。為溢出。0101為正溢出,為正溢出,1010為負(fù)溢出,溢出時,為負(fù)溢出,溢出時, 高位符號是高位符號是結(jié)果的正確符號。結(jié)果的正確符號。 例例9:設(shè)設(shè)A=-11/16,B=-7/16,求,求A+B補 補,用一位符 ,用一位符 號位判斷法判斷有無溢出,若有溢出,是什么溢出號位判斷法判斷有無溢出,若有溢出,是什么溢出 類型?類型

28、? 例例10:試用:試用變形補碼法變形補碼法計算計算A+B并判斷有無溢出,并判斷有無溢出, 并指出是什么溢出類型,設(shè)并指出是什么溢出類型,設(shè)A=+11/16,B=+7/16。 例例11:試用:試用變形補碼法變形補碼法計算計算A+B并判斷有無溢出,并判斷有無溢出, 并指出什么溢出類型,設(shè)并指出什么溢出類型,設(shè)A=-11/16,B=-7/16。 例例12:已知:已知X = +11/16 Y = +3/16 ,用,用雙符號位法雙符號位法判判 斷斷X+Y補 補有無溢出,若溢出,是什么類型的溢出。 有無溢出,若溢出,是什么類型的溢出。 例例13:已知:已知:X = 0.1011 Y = 0.0101 ,

29、用,用雙符號位法雙符號位法 判斷判斷X+Y補 補有無溢出,若溢出,是什么類型的溢出。 有無溢出,若溢出,是什么類型的溢出。 原碼一位乘運算原碼一位乘運算 基本公式:基本公式: 設(shè)設(shè) 被乘數(shù)被乘數(shù) X原 原 = xf . x1 x2 x n 乘乘 數(shù)數(shù) Y原 原 = yf . y1 y2 y n 則 則 X Y原 原 =( xf yf ). ( |X| |Y| ) 其中,其中, |X X|和和|Y Y|分別是分別是X X和和Y Y的絕對值的絕對值 引例:引例: X = 0.1101 Y = - 0.1011 X原 原= 0.1101 Y原原 = 1.1011 |X|= 0.1101 |Y| =

30、0.1011 0. 1 1 0 1 . 累加器初值取零值累加器初值取零值 0. 1 0 1 1 + . 1 1 0 1 1 1 0 1 . 部分積部分積右右移移1位位 , 0 0 0 0 將移出的將移出的1保存起來保存起來 +1 1 0 1 求第一次部分積求第一次部分積 0 . 1 0 0 0 1 1 1 1 手工運算過程手工運算過程 原碼一位乘運算原碼一位乘運算 原碼一位乘運算原碼一位乘運算 |X|= 0.1101 |Y|= 0.1011 0. 1 1 0 1 . 1 0. 1 0 1 1 + . 1 1 0 1 1. 前次部分積加被乘數(shù)前次部分積加被乘數(shù) 1 1 0 1 . 部分積右移部分

31、積右移 0 0 0 0將移出的一位保存起來將移出的一位保存起來 + 1 1 0 1 求第二次部分積求第二次部分積 0 . 1 0 0 0 1 1 1 1 手工運算過程手工運算過程 (筆算)(筆算) 原碼一位乘運算原碼一位乘運算 |X| = 0.1101 |Y| = 0.1011 0. 1 1 0 1 . 1 1 0. 1 0 1 1 + . 1 1 0 1 . 前次部分積加前次部分積加 1 1 0 1 .部分積右移部分積右移 0 0 0 0將移出的一位保存起來將移出的一位保存起來 + 1 1 0 1 求第三次部分積求第三次部分積 0 . 1 0 0 0 1 1 1 1 手工運算過程(筆算)手工

32、運算過程(筆算) 原碼一位乘運算原碼一位乘運算 X* = 0.1101 Y* = 0.1011 0. 1 1 0 1 . 0. 1 0 1 1 + . 1 1 0 1 1.前次部分積加被乘數(shù)前次部分積加被乘數(shù) 1 1 0 1 .部分積右移部分積右移 0 0 0 0將移出的一位保存起來將移出的一位保存起來 + 1 1 0 1 求第四次部分積求第四次部分積 0 . 1 0 0 0 1 1 1 1 手工運算過程手工運算過程 乘數(shù)有乘數(shù)有四四位有效數(shù)位,所以共完成位有效數(shù)位,所以共完成四四次加法次加法 和和四四次右移,再用一步完成兩數(shù)符號次右移,再用一步完成兩數(shù)符號異或異或求求 積的符號積的符號, 結(jié)

33、果為結(jié)果為 -0.10001111。 原碼一位乘運算規(guī)則原碼一位乘運算規(guī)則 原碼一位乘運算規(guī)則:原碼一位乘運算規(guī)則: 1. 1. 乘積的乘積的符號位符號位由兩數(shù)符號位由兩數(shù)符號位“異或異或”產(chǎn)生,符產(chǎn)生,符 號位不參與運算;號位不參與運算; 2. 2. 部分積可采用一位或兩位符號位;部分積可采用一位或兩位符號位; 3. 3. 乘積的數(shù)值部分由兩數(shù)絕對值相乘積的數(shù)值部分由兩數(shù)絕對值相乘乘產(chǎn)生,產(chǎn)生,通過通過n n 次次“加法加法”和和n n次次“右移右移”操作實現(xiàn)操作實現(xiàn)。(n(n為乘數(shù)的有為乘數(shù)的有 效數(shù)字的位數(shù)效數(shù)字的位數(shù)) ) 原碼一位乘運算實例原碼一位乘運算實例 部分積部分積 乘數(shù)乘數(shù)

34、0. 0 0 0 0 0.1 0 1 1 + 0. 1 1 0 1 0. 1 1 0 1 0. 0 1 1 0 1 0 1 0 1 + 0. 1 1 0 1 1. 0 0 1 1 0. 1 0 0 1 1 1 0 1 0 0. 0 1 0 0 1 1 1 0 1 + 0. 1 1 0 1 1. 0 0 0 1 0. 1 0 0 0 1 1 1 1 0 0. 1 1 0 1 0. 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 + 1 1 0 1 0 . 1 0 0 0 1 1 1 1 例例14: X = -0.1101 Y = - 0.1011 手工運算過程手工運算過程 計算機

35、內(nèi)運算的實現(xiàn)方法計算機內(nèi)運算的實現(xiàn)方法 則則 X* = 0.1101 Y* = 0.1011 X原 原 = 1.1101 Y原原 = 1.1011 X Y原 原 = 0.10001111 例例15:已知:已知 X = -0.1110 Y = - 0.1101,用原碼一,用原碼一 位乘實現(xiàn)位乘實現(xiàn) X*Y原 原。 。 原碼兩位乘(選講)原碼兩位乘(選講) 兩位乘數(shù)的值可以有四種可能組合,每種組合對應(yīng)的操作: 00 相當(dāng)于0*X,部分積右移2位,不進行其它運算; 01 相當(dāng)于1*X,部分積加1X后右移2位; 10 相當(dāng)于2*X,部分積加 2X后右移2位; 11 相當(dāng)于3*X,部分積加3X后右移2位

36、。 原碼兩位乘運算規(guī)則(部分積用三位符號位): 例16:設(shè)X = 0.111111 ,Y = -0.111001,用原碼兩 位乘求X*Y原。 例17:設(shè)X = 0.100111, Y = 0.100111,用原碼兩 位乘求X*Y原。 補碼乘法運算補碼乘法運算 原碼乘法不難實現(xiàn),但有原碼乘法不難實現(xiàn),但有兩個問題兩個問題: 1. 符號位與數(shù)值位分開處理,不方便;符號位與數(shù)值位分開處理,不方便; 2. 若數(shù)據(jù)為補碼形式,可能需要多于兩次若數(shù)據(jù)為補碼形式,可能需要多于兩次 補碼補碼到到原碼的變換。原碼的變換。 也可以直接用也可以直接用補碼補碼完成乘法運算,即從補碼開始,完成乘法運算,即從補碼開始,

37、直接得到補碼的積。直接得到補碼的積。 補碼一位乘法運算的補碼一位乘法運算的算法規(guī)則算法規(guī)則 補碼一位乘算法規(guī)則:補碼一位乘算法規(guī)則: 1.1. X X、Y Y的符號位都參加運算,部分積采用的符號位都參加運算,部分積采用雙雙符號位;符號位; 2.2.被乘數(shù)符號任意,乘數(shù)符號為被乘數(shù)符號任意,乘數(shù)符號為正正,按,按原碼原碼運算規(guī)則運運算規(guī)則運 算。算。 3.3.被乘數(shù)符號任意,乘數(shù)符號為被乘數(shù)符號任意,乘數(shù)符號為負(fù)負(fù),乘數(shù)補碼,乘數(shù)補碼去掉符號去掉符號 位位與被乘數(shù)相乘,最后與被乘數(shù)相乘,最后加上加上-X X 補 補進行校正。 進行校正。 4.4.進行進行n n次加運算,次加運算,n n次右移,次

38、右移,積的符號位積的符號位由運算過程自由運算過程自 動產(chǎn)生,這點與原碼運算不同。動產(chǎn)生,這點與原碼運算不同。 5.被乘數(shù)和乘數(shù)符號均為任意,用比較法(Booth算法)。 (1 1)X X、Y Y的符號位都參加運算,部分積采用雙符號位;的符號位都參加運算,部分積采用雙符號位; (2 2)乘數(shù)最低位之后增加一位附加位)乘數(shù)最低位之后增加一位附加位yn+1 ,且令初值且令初值yn+1=0; (3 3)每位部分積運算規(guī)則如下:每位部分積運算規(guī)則如下: yn yn+1= 00 時,時, 部分積加零,再右移部分積加零,再右移1位位; yn yn+1= 01 時,時, 部分積加部分積加 X補, 補, 再 再

39、右移右移1位位; ; yn yn+1= 10 時,時, 部分積加部分積加 -X補, 補, 再 再右移右移1位位; ; yn yn+1= 11 時,時, 部分積加零,再右移部分積加零,再右移1位;位; (4 4)進行進行n+1n+1次加法,次加法,n n次右移,次右移,積的符號由運算過程自動產(chǎn)生。積的符號由運算過程自動產(chǎn)生。 例18:已知X補=1.0101,Y補=0.1101,用補碼一 位乘求X*Y補。 例19:已知X補=0.1101,Y補=1.0101,用補碼一 位乘求X*Y補。 例20:已知X補=1.1101,Y補=0.1101,用補碼 一位乘求X*Y補。 例21:已知X補=0.0111,Y

40、補=1.1001,用補碼 一位乘求X*Y補。 補碼一位乘法運算實例(比較法)補碼一位乘法運算實例(比較法) 已知已知: X補 補 = 0.1101 Y補補 = 0.1011 部分積部分積 乘數(shù)乘數(shù) yn yn+1 0 0. 0 0 0 0 0.1 0 1 1 0 +1 1. 0 0 1 1 1 1. 1 0 0 1 1 0 1 0 1 1 1 1. 1 1 0 0 1 1 0 1 0 1 +0 0. 1 1 0 1 0 0. 1 0 0 1 0 0. 0 1 0 0 1 1 1 0 1 0 +1 1. 0 0 1 1 1 1. 0 1 1 1 1 1. 1 0 1 1 1 1 1 1 0 1

41、+0 0. 1 1 0 1 0 0. 1 0 0 0 1 1 1 1 則則 -X補 補 = 1.0011 X*Y補 補 = 0.10001111 例22:X補 補 = 1.0101 Y補補 = 1.0011,用比較法求 ,用比較法求 X*Y補 補 例23:X補 補 = 1.1101 Y補補 = 0.0111,用比較法求 ,用比較法求 X*Y補 補 原碼原碼除法除法(以定點小數(shù)為例以定點小數(shù)為例) 基本公式:基本公式: 設(shè)設(shè) 被除數(shù)被除數(shù) X原 原 = xf . x1 x2 x n 除除 數(shù)數(shù) Y原 原 = yf . y1 y2 y n 則 則: : 若若 0 X Y X Y原 原 =( xf

42、yf ). ( X* Y* ) 其中,其中, X* 和和Y*分別是分別是X和和Y的絕對值的絕對值 例如:例如: X = 0.1011 Y = - 0.1101 筆算除法過程筆算除法過程 0.1101 0.1101 0.10110 -0.01101 0.010010 -0.001101 0.0001010 0.00010100 -0.00001101 0.00000111 原碼除運算方法分析原碼除運算方法分析(以定點小數(shù)為例以定點小數(shù)為例) 機器實現(xiàn)問題:機器實現(xiàn)問題: 1. 需單獨設(shè)計比較器線路;需單獨設(shè)計比較器線路; 2. 需需2n位的減法器線路。位的減法器線路。 解決方案:解決方案: 1.

43、 比較比較操作改由操作改由“試減試減”實現(xiàn);實現(xiàn); 2. 將除數(shù)右移改為將除數(shù)右移改為部分余數(shù)左移部分余數(shù)左移; 3. 減法由減法由+-Y補 補轉(zhuǎn)化為加法實現(xiàn)。 轉(zhuǎn)化為加法實現(xiàn)。 原碼恢復(fù)余數(shù)除法的算法規(guī)則原碼恢復(fù)余數(shù)除法的算法規(guī)則 1.1.除法運算前,應(yīng)滿足條件:除法運算前,應(yīng)滿足條件:X X* *YY* *, ,且且Y Y* *00, ,否則,按溢出否則,按溢出 或非法除數(shù)處理;或非法除數(shù)處理; 2.2.符號位不參與運算符號位不參與運算,單獨處理:,單獨處理:q qf f= x= xf f y yf f ; ; 3.3.部分余數(shù)采用部分余數(shù)采用單符號位或雙符號位單符號位或雙符號位; 4.4

44、.每步部分余數(shù)運算規(guī)則:每步部分余數(shù)運算規(guī)則: 5.5.共需經(jīng)過共需經(jīng)過n+1n+1次取商和次取商和n n次部分余數(shù)的左移實現(xiàn)。次部分余數(shù)的左移實現(xiàn)。 余數(shù)為正,商上余數(shù)為正,商上1 1,余數(shù)和商左移一位余數(shù)和商左移一位,減除數(shù);,減除數(shù); 余數(shù)為負(fù),商上余數(shù)為負(fù),商上0 0,需通過,需通過加除數(shù)來加除數(shù)來恢復(fù)余數(shù),恢復(fù)余數(shù),余數(shù)余數(shù) 左移一位減除數(shù),商左移一位。左移一位減除數(shù),商左移一位。 被除數(shù)(余數(shù))被除數(shù)(余數(shù)) 商商 說說 明明 0. 1 0 1 1 0. 0 0 0 0 + 1. 0 0 1 1 + -Y *補 補 (減除數(shù) (減除數(shù)) 1. 1 1 1 0 余數(shù)余數(shù) 0, 商上商

45、上1 1. 0 0 1 0 0 0 0 0 1 左移一位左移一位 + 1. 0 0 1 1 + -Y *補 補 0. 0 1 0 1 余數(shù)余數(shù) 0, 商上商上1 0. 1 0 1 0 0 0 0 1 1 左移一位左移一位 + 1. 0 0 1 1 + -Y *補 補 1. 1 1 0 1 余數(shù)余數(shù) 0, 商上商上1 例如:例如: X = -0.1011 Y = - 0.1101 X原 原= 1.1011 Y原 原= 1.1101 X* = 0.1011 Y* = 0.1101 -Y*補 補 = 1.0011 恢復(fù)余數(shù)法恢復(fù)余數(shù)法 X/Y原 原=0.1101 R原 原=0.0111 2 2- -

46、4 4 例例24: 假如假如X = -0.1001 Y = - 0.1101 ,用原碼,用原碼 的恢復(fù)余數(shù)法計算的恢復(fù)余數(shù)法計算X/Y原 原 原碼加減交替除法算法規(guī)則原碼加減交替除法算法規(guī)則 1.1.除法運算前,應(yīng)滿足條件:除法運算前,應(yīng)滿足條件:X X* *YY* *, ,且且Y Y* *00, ,否則,按溢否則,按溢 出或非法除數(shù)處理;出或非法除數(shù)處理; 2.2.符號位不參與運算符號位不參與運算,單獨處理:,單獨處理:q qf f= x= xf f y yf f ; ; 3.3.部分余數(shù)采用部分余數(shù)采用單符號位或雙符號位單符號位或雙符號位; 4.4.每步部分余數(shù)運算規(guī)則:每步部分余數(shù)運算規(guī)

47、則: 余數(shù)為正,商上余數(shù)為正,商上1 1,余數(shù)左移一位余數(shù)左移一位,減除數(shù);,減除數(shù); 余數(shù)為負(fù),商上余數(shù)為負(fù),商上0 0,余數(shù)左移一位余數(shù)左移一位,加除數(shù);,加除數(shù); 5.5.共需經(jīng)過共需經(jīng)過n+1n+1次取商和次取商和n n次部分余數(shù)的左移實現(xiàn)(次部分余數(shù)的左移實現(xiàn)(n n為除數(shù)為除數(shù) 的有效位數(shù))。的有效位數(shù))。 被除數(shù)(余數(shù))被除數(shù)(余數(shù)) 商商 說說 明明 0. 1 0 1 1 0. 0 0 0 0 試減試減 + 1. 0 0 1 1 + -Y *補 補 (減除數(shù) 減除數(shù)) 1. 1 1 1 0 余數(shù)余數(shù) 0, 商上商上1 1. 0 0 1 0 0 0 0 0 1 左移一位左移一位

48、+ 1. 0 0 1 1 + -Y *補 補 0. 0 1 0 1 余數(shù)余數(shù) 0, 商上商上1 0. 1 0 1 0 0 0 0 1 1 左移一位左移一位 + 1. 0 0 1 1 + -Y *補 補 1. 1 1 0 1 余數(shù)余數(shù) 0, 商上商上1 例如:例如: X = -0.1011 Y = - 0.1101 X原 原= 1.1011 Y原 原= 1.1101 X* = 0.1011 Y* = 0.1101 -Y*補 補 = 1.0011 加減交替加減交替 除除 法法 X/Y原 原= 0.1101 R = 0.0111 2 2- -4 4 例例25: 假如假如X = -0.1001 Y =

49、 - 0.1101 ,用原碼,用原碼 的加減交替法計算的加減交替法計算X/Y原 原 補碼除法(加減交替法)補碼除法(加減交替法) 運算規(guī)則 符號位參加運算,除數(shù)和被除數(shù)均用補碼表示; 第一步的運算 被除數(shù)與除數(shù)同號,被除數(shù)減去除數(shù),加-y補; 被除數(shù)與除數(shù)異號,被除數(shù)加上除數(shù),加y補; 后續(xù)步驟的運算 余數(shù)與除數(shù)同號,商上1,余數(shù)左移一位減去除數(shù); 余數(shù)與除數(shù)異號,商上0,余數(shù)左移一位加上除數(shù)。 重復(fù)步驟 ,共做n次部分余數(shù)左移,n次加法,n+1次取商, 最后一位商恒置1,不用求。 如果對商的精度沒有特殊要求,一般可采用“末位恒置1”法,此 法操作簡單,易于實現(xiàn) 。 2021年6月27日星期日

50、81 例26.設(shè) x = 0.1011,y = 0.1101,求 并還原真值。 補 補 x y x補 補 = 1.0101 y補 補 = 0.1101 y補 補 = 1.0011 1 . 0 1 0 1 0 . 1 1 0 1 1 . 0 0 1 1 0 . 1 1 0 1 0 . 1 1 0 1 0 . 0 0 0 0 異號做加法異號做加法 1 0 . 0 0 1 0同號上同號上“1” 1 . 0 1 1 11 異號上異號上“0” +y補 補 1 . 1 0 1 11 0 異號上異號上“0” +y補 補 0 . 0 0 1 11 0 0同號上同號上“1” 0 . 0 1 0 01 1 0 .

51、 1 1 1 01 01 1 . 0 1 1 01 0 01 末位恒置末位恒置“1”0 . 0 1 1 01 0 0 1 1 補 補= 1.0011 x y 0 0 1 1 +y補 補 x y = 0.1101則則 被除數(shù)被除數(shù)(余數(shù)余數(shù)) 商商 說說 明明 例27:已知x=0.1001,y=0.1101,用補碼加減交替法求x/y補。 例28:已知x=-0.1001,y=0.1101,用補碼加減交替法求x/y補。 三、浮點數(shù)的運算三、浮點數(shù)的運算 浮點數(shù)加減運算浮點數(shù)加減運算 由對階、由對階、 尾數(shù)加減、尾數(shù)加減、 規(guī)格化、規(guī)格化、 舍入和結(jié)果判溢出舍入和結(jié)果判溢出 五步五步實現(xiàn)。實現(xiàn)。 浮點

52、數(shù)乘除運算浮點數(shù)乘除運算 由階碼加減由階碼加減 、尾數(shù)乘除、規(guī)格化、舍入和結(jié)果判、尾數(shù)乘除、規(guī)格化、舍入和結(jié)果判 溢出溢出五步五步實現(xiàn)。實現(xiàn)。 浮點數(shù)加減運算浮點數(shù)加減運算 運算步驟:運算步驟: (1)對階操作,求階差:)對階操作,求階差: j= jX - jY, 使階碼小的數(shù)的尾數(shù)右移 使階碼小的數(shù)的尾數(shù)右移j位,位, 其階碼取大的階碼值;其階碼取大的階碼值;即小階向大階看齊。即小階向大階看齊。 (2)尾數(shù)相加減;)尾數(shù)相加減; jX X = SX 2 jY Y = SY 2 求:求: XY = ? 已知:已知: (3)規(guī)格化處理,當(dāng)尾數(shù)出現(xiàn))規(guī)格化處理,當(dāng)尾數(shù)出現(xiàn)00.0或或11.1的組合

53、時,需的組合時,需 左規(guī);當(dāng)尾數(shù)出現(xiàn)左規(guī);當(dāng)尾數(shù)出現(xiàn)01.X或或10.X的組合時,需右規(guī);的組合時,需右規(guī); (4)舍入操作,分為零舍一入法和末位恒置一法;)舍入操作,分為零舍一入法和末位恒置一法; (5)判結(jié)果的正確性,即檢查階碼,結(jié)果)判結(jié)果的正確性,即檢查階碼,結(jié)果j補補=01為上為上 溢(出錯),結(jié)果溢(出錯),結(jié)果 j補補=10,為下溢,當(dāng)機器零處理,為下溢,當(dāng)機器零處理 。 浮點數(shù)加運算浮點數(shù)加運算舉例舉例 已知:已知:X= 2010 0.11011011, Y= 2100 (-0.10101100),浮點數(shù),浮點數(shù)階階 碼用碼用 5 位補碼(含位補碼(含2位符號位位符號位 )表示

54、,)表示, 尾數(shù)用尾數(shù)用 10 位補碼(含位補碼(含2位位 符號位符號位 )表示,)表示,求:求: Z1 = X+Y = ? 解:首先,寫出浮點數(shù)解:首先,寫出浮點數(shù)X、Y的正確的補碼表示:的正確的補碼表示: 階碼用階碼用 5 位補碼位補碼 (含(含2位符號位位符號位 ),),尾數(shù)用尾數(shù)用 10 位補碼(含位補碼(含 2位符號位位符號位 ) X浮 浮 = 00, 010; 00.11011011 Y浮 浮 = 00, 100; 11.01010100 浮點數(shù)加運算舉例浮點數(shù)加運算舉例 (1)對階)對階 j 補 補= jX 補補+-jY 補補= 00, 010 + 11, 100 = 11, 1

55、10 j = -2 0, 即即jX jY 因此,修改因此,修改 MX補 補 = =00.00110110(即右移 (即右移2 2位)位) jx補 補= 00, 100 (2)尾數(shù)求和差)尾數(shù)求和差 00. 00110110 + 11. 01010100 11. 10001010 (3)規(guī)格化處理)規(guī)格化處理 規(guī)格化處理,當(dāng)尾數(shù)出現(xiàn)規(guī)格化處理,當(dāng)尾數(shù)出現(xiàn)00.0或或11.1的組合時,的組合時, 需左規(guī),階碼減一;當(dāng)尾數(shù)出現(xiàn)需左規(guī),階碼減一;當(dāng)尾數(shù)出現(xiàn)01.X或或10.X的組合時,的組合時, 需右規(guī),階碼加一;需右規(guī),階碼加一; 本例尾數(shù)為本例尾數(shù)為11.1X,應(yīng)執(zhí)行一次左規(guī)操作,故得,應(yīng)執(zhí)行一次

56、左規(guī)操作,故得 Sz1補 補 = 11. 00010100, , jZ1補 補 = 00, 011 (4)舍入處理)舍入處理 舍入舍入按照一定規(guī)則舍去多余的位數(shù),并對保留位進行按照一定規(guī)則舍去多余的位數(shù),并對保留位進行 調(diào)整的過程。調(diào)整的過程。 主要方法:主要方法: 末位恒置末位恒置1 1法:法:在舍去尾數(shù)在舍去尾數(shù)最低位之后數(shù)值最低位之后數(shù)值的同時,將尾的同時,將尾 數(shù)末位置數(shù)末位置1。 0 0舍舍1 1入法:入法: 當(dāng)尾數(shù)用原碼表示,或用補碼表示的正數(shù)時當(dāng)尾數(shù)用原碼表示,或用補碼表示的正數(shù)時, 若移出部分的最高位為若移出部分的最高位為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的

57、最高位為1 1,在舍去時,將尾數(shù)末位,在舍去時,將尾數(shù)末位+1+1。 當(dāng)尾數(shù)用補碼表示的負(fù)數(shù)時當(dāng)尾數(shù)用補碼表示的負(fù)數(shù)時, 若移出各位全為若移出各位全為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的最高位為0,0,其余各位不全為其余各位不全為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的最高位為1,1,其余各位全為其余各位全為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的最高位為1,1,其余各位不全為其余各位不全為0 0,末位,末位+1+1。 (5)檢查溢出)檢查溢出 浮點溢出用浮點溢出用階碼溢出階碼溢出表示。表示。 溢出有兩種情況:溢出有兩種情況: 階符為階符為1

58、0,階碼下溢:用機器零表示;,階碼下溢:用機器零表示; 階符為階符為01,階碼上溢:,階碼上溢:置溢出標(biāo)志,轉(zhuǎn)溢出處理。置溢出標(biāo)志,轉(zhuǎn)溢出處理。 本例中的階碼不溢出。本例中的階碼不溢出。 則得則得 Z1浮 浮= 00, 011; 11. 00010101( (末位恒置一末位恒置一), 即即 Z1 =2011 (-0.11101011) 例例29:已知兩浮點數(shù):已知兩浮點數(shù)X=0.1101210,Y=0.1011201, , 求求X+Y。 例例30:設(shè):設(shè)X=2-101(-0.101000),Y=2-100(+0.111011),階階 符取符取2位,階碼的數(shù)值部分取位,階碼的數(shù)值部分取3位,數(shù)符

59、取位,數(shù)符取2位,尾數(shù)位,尾數(shù) 的數(shù)值部分取的數(shù)值部分取6位,求位,求X-Y。 浮點數(shù)乘除運算浮點數(shù)乘除運算 運算步驟:運算步驟: (1) 階碼加、減:階碼加、減:乘:乘:jX+jY ,除:除:jX- jY (2) 尾數(shù)乘、除:尾數(shù)乘、除:乘:乘:SX SY , 除:除:SX / SY (3) 規(guī)格化處理;規(guī)格化處理; (4) 舍入操作;舍入操作; (5) 判結(jié)果的正確性,即檢查階碼溢出。判結(jié)果的正確性,即檢查階碼溢出。 jX X = SX 2 jY Y = SY 2 求:求: X * Y = ? 或或 X / Y = ? 已知:已知: 浮點數(shù)乘法運算舉例浮點數(shù)乘法運算舉例 已知:已知: X=

60、2010 0.1011, Y=2100 (-0.1101) 求:求: Z = X Y = ? 寫出寫出X、Y的正確的浮點數(shù)表示:的正確的浮點數(shù)表示: 階碼用階碼用 5 位補位補碼碼(含(含2位符號位位符號位 ) 尾數(shù)用尾數(shù)用 5 位補碼位補碼 (含(含1位符號位位符號位 ) X浮 浮 = 00, 010; 0.1011 Y浮 浮 = 00, 100; 1. 0011 (1)階碼相加)階碼相加 若階碼采用補碼,則按補碼加法規(guī)則進行。若階碼采用補碼,則按補碼加法規(guī)則進行。 jX 補 補+jY 補補=00,010+00,100=00,110 (2 2)尾數(shù)相乘)尾數(shù)相乘( (比較法比較法) ) Sz

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論