




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三篇 中央處理器(CPU) 第第 6 6 章章 計(jì)算機(jī)的運(yùn)算方法計(jì)算機(jī)的運(yùn)算方法 *一、數(shù)據(jù)的編碼與表示一、數(shù)據(jù)的編碼與表示 *二、定點(diǎn)數(shù)的算術(shù)運(yùn)算二、定點(diǎn)數(shù)的算術(shù)運(yùn)算 *三、浮點(diǎn)四則運(yùn)算三、浮點(diǎn)四則運(yùn)算 *四、邏輯運(yùn)算四、邏輯運(yùn)算 數(shù)據(jù)表示數(shù)據(jù)表示 運(yùn)算方法運(yùn)算方法 一、數(shù)據(jù)的編碼與表示一、數(shù)據(jù)的編碼與表示 數(shù)據(jù)數(shù)據(jù) 邏輯數(shù)據(jù)邏輯數(shù)據(jù) 檢錯(cuò)糾錯(cuò)碼檢錯(cuò)糾錯(cuò)碼 字符字符 字符串字符串 漢字漢字 數(shù)值數(shù)值 文字、符號(hào)文字、符號(hào) 語音語音圖形圖形圖像圖像 各種進(jìn)制各種進(jìn)制 BCD碼碼 定點(diǎn)定點(diǎn) 浮點(diǎn)浮點(diǎn) 邏輯型數(shù)據(jù)邏輯型數(shù)據(jù) 邏輯型數(shù)據(jù)只有兩個(gè)值:邏輯型數(shù)據(jù)只有兩個(gè)值:真和假真和假,正好可以用二進(jìn)
2、,正好可以用二進(jìn) 制碼的兩個(gè)符號(hào)分別表示,制碼的兩個(gè)符號(hào)分別表示, 例如例如 1 表示表示 真真 則則 0 表示表示 假假 不必使用另外的編碼規(guī)則。不必使用另外的編碼規(guī)則。 對(duì)邏輯型數(shù)據(jù)可以執(zhí)行邏輯的對(duì)邏輯型數(shù)據(jù)可以執(zhí)行邏輯的 與、或、非與、或、非等基本邏等基本邏 輯運(yùn)算。輯運(yùn)算。 字符型數(shù)據(jù)的表示字符型數(shù)據(jù)的表示 字符作為人字符作為人機(jī)聯(lián)系的媒介,指字母、數(shù)字、機(jī)聯(lián)系的媒介,指字母、數(shù)字、 運(yùn)算符等西文字信息。當(dāng)前的西文字符集由運(yùn)算符等西文字信息。當(dāng)前的西文字符集由 128 個(gè)符號(hào)組成,通常用個(gè)符號(hào)組成,通常用 8 位二進(jìn)制編碼,即位二進(jìn)制編碼,即用一個(gè)用一個(gè) 字節(jié)來表示每一個(gè)符號(hào)字節(jié)來表示
3、每一個(gè)符號(hào),當(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碼碼的機(jī)內(nèi)表示的機(jī)內(nèi)表示 采用一個(gè)字節(jié)表示采用一個(gè)字節(jié)表示ASCII碼時(shí),最高位的處碼時(shí),最高位的處 理方法:理方法: (1 1)最高位)最高位不用不用,即恒為,即恒為“0”0”; (2 2)最高位用于)最高位用于奇偶校驗(yàn)位奇偶校驗(yàn)位; (3 3)若采用擴(kuò)展)若采用擴(kuò)展ASCIIASCII碼方案時(shí),最高位也用來碼方案時(shí),最高位也用來 表示表示字符編碼字符編碼,此時(shí),可表示,此時(shí),可表示256256種符號(hào)。種符號(hào)。 字符串的存放:字符串的存放: 字符串是指字符串是指連續(xù)連續(xù)的一
5、串字符,它們占據(jù)主存的一串字符,它們占據(jù)主存 中中連續(xù)連續(xù)的多個(gè)字節(jié),每個(gè)字節(jié)存放一個(gè)字符,對(duì)的多個(gè)字節(jié),每個(gè)字節(jié)存放一個(gè)字符,對(duì) 一個(gè)主存字的多個(gè)字節(jié),有一個(gè)主存字的多個(gè)字節(jié),有按從低位到高位按從低位到高位字節(jié)字節(jié) 次序存放的,也有按次序存放的,也有按從高位到低位從高位到低位字節(jié)次序存放字節(jié)次序存放 的。例如:的。例如:IF AB THEN READ(C)就可以有如就可以有如 下不同的存放方式:下不同的存放方式: 字符串的表示與存儲(chǔ)字符串的表示與存儲(chǔ) I F A A F I B T T B 假定每個(gè)字假定每個(gè)字 H E N N E H 由由 4 個(gè)字節(jié)個(gè)字節(jié) R E A D D A E R
6、組成組成 ( C ) ) C ( 漢字的表示漢字的表示 在計(jì)算機(jī)中表示漢字通常涉及以下幾種漢字編碼:在計(jì)算機(jī)中表示漢字通常涉及以下幾種漢字編碼: (1)漢字輸入碼)漢字輸入碼 為直接使用西文標(biāo)準(zhǔn)鍵盤把漢字為直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入輸入到計(jì)算到計(jì)算 機(jī)而設(shè)計(jì)。機(jī)而設(shè)計(jì)。 (2)漢字機(jī)內(nèi)碼)漢字機(jī)內(nèi)碼 漢字信息在計(jì)算機(jī)內(nèi)部存儲(chǔ)、處理和傳送所采漢字信息在計(jì)算機(jī)內(nèi)部存儲(chǔ)、處理和傳送所采 用的編碼。通常采用國標(biāo)碼。用的編碼。通常采用國標(biāo)碼。 (3)漢字字模碼)漢字字模碼 用于輸出設(shè)備用于輸出設(shè)備輸出輸出漢字而設(shè)計(jì)的字形編碼漢字而設(shè)計(jì)的字形編碼。 漢字的機(jī)內(nèi)表示漢字的機(jī)內(nèi)表示 通常用通常用兩個(gè)字節(jié)兩
7、個(gè)字節(jié)表示一個(gè)漢字。表示一個(gè)漢字。 漢字內(nèi)碼的識(shí)別方法:漢字內(nèi)碼的識(shí)別方法: (1 1)若將若將ASCIIASCII碼字節(jié)的高位設(shè)為碼字節(jié)的高位設(shè)為“0”0”,則漢字兩,則漢字兩 個(gè)字節(jié)的高位個(gè)字節(jié)的高位均為均為“1”1”; (2 2)若若ASCIIASCII碼字節(jié)最高位用于奇偶校驗(yàn)碼或擴(kuò)充碼,碼字節(jié)最高位用于奇偶校驗(yàn)碼或擴(kuò)充碼, 則需要三個(gè)字節(jié)表示漢字,第一個(gè)字節(jié)作為漢字的則需要三個(gè)字節(jié)表示漢字,第一個(gè)字節(jié)作為漢字的標(biāo)標(biāo) 識(shí)符識(shí)符。 幾種常用的數(shù)制及其轉(zhuǎn)換幾種常用的數(shù)制及其轉(zhuǎn)換 N進(jìn)制數(shù)可用進(jìn)制數(shù)可用表示;表示; 溫故而知新:二進(jìn)制、十進(jìn)制、八進(jìn)制、十六進(jìn)溫故而知新:二進(jìn)制、十進(jìn)制、八進(jìn)制、
8、十六進(jìn) 制的表示方法及其相互轉(zhuǎn)換。制的表示方法及其相互轉(zhuǎn)換。 二二十進(jìn)制編碼(十進(jìn)制編碼(BCD編碼)編碼) BCD編碼,編碼,用用四位四位二進(jìn)制表示一位十進(jìn)制,有多二進(jìn)制表示一位十進(jìn)制,有多 種方案,種方案, 例如:例如: 84218421碼,碼,54215421碼,碼,24212421碼,余碼,余3 3碼,格雷碼。碼,格雷碼。 又可區(qū)分為:又可區(qū)分為: 有權(quán)碼:有權(quán)碼:四個(gè)二進(jìn)制位均有指定的位權(quán)。四個(gè)二進(jìn)制位均有指定的位權(quán)。 無權(quán)碼:無權(quán)碼:二進(jìn)制編碼各位無指定的位權(quán)。二進(jì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ù)點(diǎn)位置不同,運(yùn)算如何實(shí)現(xiàn)?思考:
10、小數(shù)點(diǎn)位置不同,運(yùn)算如何實(shí)現(xiàn)? 手工運(yùn)算:手工運(yùn)算: . 符號(hào)位符號(hào)位 1 0. 定點(diǎn)數(shù)運(yùn)算中小數(shù)點(diǎn)的位置無關(guān),小數(shù)點(diǎn)無需存放定點(diǎn)數(shù)運(yùn)算中小數(shù)點(diǎn)的位置無關(guān),小數(shù)點(diǎn)無需存放 數(shù)值型數(shù)值型數(shù)據(jù)的機(jī)內(nèi)表示形式數(shù)據(jù)的機(jī)內(nèi)表示形式 隱藏隱藏 定點(diǎn)小數(shù)定點(diǎn)小數(shù): N = Nf . N1 N2 Nn 定點(diǎn)整數(shù)定點(diǎn)整數(shù): N = Nf N1 N2 Nn. 浮點(diǎn)數(shù)浮點(diǎn)數(shù): N = jf j1 j2 . Jm ; ; Sf . S1 S2 . Sn 隱藏隱藏 隱藏隱藏 定點(diǎn)小數(shù)定點(diǎn)小數(shù)表示表示: Xf X-1 X-2 X -n 特點(diǎn):特點(diǎn):原碼原碼為符號(hào)位加數(shù)的為符號(hào)位加數(shù)的絕對(duì)值絕對(duì)值,0正正1負(fù)負(fù) 原碼零原碼
11、零有兩個(gè)編碼,有兩個(gè)編碼,+0和和 -0編碼不同編碼不同 X 1 X=1+|X| -1 X 0 0 X 1 定義: X原 = 原碼原碼的定的定 義義 實(shí)例:X1 = 0.10110 -0.10110 0.0000 X1原 = 0.10110 1.10110 0.0000 1.0000 n 定義: X原 = 定點(diǎn)整數(shù)定點(diǎn)整數(shù)表示表示: Xf Xn Xn-1 X 1 0,X 2n-X=2n+|X| 0 X 2n -2n X 0 2n=1 0 0 0 實(shí)例:X1 = 10110 -10110 0 X1原 = 010110 110110 0,0000 1,0000 定點(diǎn)小數(shù)定點(diǎn)小數(shù)反碼的定義 特點(diǎn):負(fù)
12、數(shù)特點(diǎn):負(fù)數(shù)反碼反碼為符號(hào)位跟數(shù)每位的反,為符號(hào)位跟數(shù)每位的反,0正正1負(fù)負(fù) 反碼反碼零有兩個(gè)編碼,零有兩個(gè)編碼,+0 和和 - -0 的編碼不同的編碼不同 X (2-2-n)+X -1 X 0 0 X 1 定義:X反 = 實(shí)例:X1 = 0.10110 -0.10110 0.0000 X1反 = 0.10110 1.01001 0.0000 1.1111 n+1 定義: X反 = 定點(diǎn)整數(shù)的定點(diǎn)整數(shù)的反碼反碼表示表示 0,X 2n+1-1+X 0 X 2n -2n X 0 2n+1=1 0 0 0 定點(diǎn)小數(shù)表示定點(diǎn)小數(shù)表示: Xf X-1 X-2 X -n 特點(diǎn):特點(diǎn): 補(bǔ)碼補(bǔ)碼最高一位為符
13、號(hào)位,最高一位為符號(hào)位,0正正1負(fù)負(fù) 補(bǔ)碼表示補(bǔ)碼表示為模加上負(fù)數(shù)本身為模加上負(fù)數(shù)本身 補(bǔ)碼補(bǔ)碼零有唯一編碼,故補(bǔ)碼還可以表示零有唯一編碼,故補(bǔ)碼還可以表示 -1 補(bǔ)碼補(bǔ)碼能很好用于加減(乘除)運(yùn)算能很好用于加減(乘除)運(yùn)算 補(bǔ)碼補(bǔ)碼的引入;鐘表;負(fù)數(shù)的正補(bǔ)數(shù)。的引入;鐘表;負(fù)數(shù)的正補(bǔ)數(shù)。 實(shí)例:X1 = 0.10110 -0.10110 0.0000 -0.0000 -1.0000 X1補(bǔ) = 0.10110 1.01010 0.0000 0.0000 1.0000 n+1 定義: X補(bǔ) = 定點(diǎn)整數(shù)表示定點(diǎn)整數(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ù)的原碼、反碼和補(bǔ)碼表示的原碼、反碼和補(bǔ)碼表示 與定點(diǎn)小數(shù)的三種表示基本相同,差別僅表現(xiàn)在與定點(diǎn)小數(shù)的三種表示基本相同,差別僅表現(xiàn)在小數(shù)點(diǎn)小數(shù)點(diǎn) 的位置,整數(shù)的小數(shù)點(diǎn)在最低數(shù)值位的右側(cè)。的位置,整數(shù)的小數(shù)點(diǎn)在最低數(shù)值位的右側(cè)。 整數(shù)中用整數(shù)中用“,”隔開符號(hào)位與數(shù)值位。隔開符號(hào)位與數(shù)值位。 例如:五位整數(shù)的編碼:例如:五位整數(shù)的編碼: X1 = +01110 X1原 原= 0,01110 X1反反= 0,01110 X1補(bǔ)補(bǔ)= 0,01110 X2 = - 01110 X2原 原= 1,01110 X2反反= 1,10001 X2補(bǔ)補(bǔ)= 1,10010
15、原、反、補(bǔ)碼表示小結(jié)原、反、補(bǔ)碼表示小結(jié) 正數(shù)的正數(shù)的 原碼、反碼、補(bǔ)碼表示原碼、反碼、補(bǔ)碼表示均相同均相同,符號(hào)位為,符號(hào)位為 0,數(shù)值位等,數(shù)值位等 于數(shù)的于數(shù)的真值真值。 零的原碼和反碼均有零的原碼和反碼均有2個(gè)個(gè)編碼,補(bǔ)碼只有編碼,補(bǔ)碼只有1個(gè)編碼個(gè)編碼 負(fù)數(shù)的原碼、反碼、補(bǔ)碼表示負(fù)數(shù)的原碼、反碼、補(bǔ)碼表示均不同均不同, 符號(hào)位為符號(hào)位為 1,數(shù)值位:原碼為數(shù)的絕對(duì)值;,數(shù)值位:原碼為數(shù)的絕對(duì)值; 符號(hào)位為符號(hào)位為 1,數(shù)值位:反碼為每一位均取反碼;,數(shù)值位:反碼為每一位均取反碼; 符號(hào)位為符號(hào)位為 1,數(shù)值位:補(bǔ)碼為反碼再在最低位,數(shù)值位:補(bǔ)碼為反碼再在最低位+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,稱滿足這種表示要求的浮點(diǎn)數(shù)為,稱滿足這種表示要求的浮點(diǎn)數(shù)為規(guī)格化表示規(guī)格化表示。 把不滿足這一表示要求的尾數(shù),變成滿足這一要把不滿足這一表示要求的尾數(shù),變成滿足這一要 求的尾數(shù)的操作過程,叫作浮點(diǎn)數(shù)的求的尾數(shù)的操作過程,叫作浮點(diǎn)數(shù)的規(guī)格化處理規(guī)格化處理,通,通 過過尾數(shù)移位和修改階碼尾數(shù)移位和修改階碼實(shí)現(xiàn)。實(shí)現(xiàn)。 X = S rj X浮 浮 = jf j1 j2 . Jm Sf S1 S2 . Sn 規(guī)格化的浮點(diǎn)數(shù)尾數(shù)形式(以二
17、進(jìn)制數(shù)為例):規(guī)格化的浮點(diǎn)數(shù)尾數(shù)形式(以二進(jìn)制數(shù)為例): 當(dāng)尾數(shù)用原碼表示時(shí),當(dāng)尾數(shù)用原碼表示時(shí), S原 原 = 0.1xxx 或 或1.1xxx 當(dāng)尾數(shù)用補(bǔ)碼表示時(shí),當(dāng)尾數(shù)用補(bǔ)碼表示時(shí), S補(bǔ) 補(bǔ) = 0.1xxx 或 或1.0 xxx 例例1:判斷下列數(shù)的尾數(shù)表示是否為規(guī)格化的表示形判斷下列數(shù)的尾數(shù)表示是否為規(guī)格化的表示形 式式 -0.0111111 X原 原=1.0111111 -0.0111111 X補(bǔ) 補(bǔ)=1.1000001 -0.1000000 X原 原=1.1000000 -0.1000001 X補(bǔ) 補(bǔ)=1.0111111 浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)的表示浮點(diǎn)數(shù)在計(jì)算機(jī)內(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 定點(diǎn)數(shù)與浮點(diǎn)數(shù)的定點(diǎn)數(shù)與浮點(diǎn)數(shù)的比較比較: (1)數(shù)位相同時(shí),浮點(diǎn)數(shù)比定點(diǎn)數(shù)表示范圍大得多;數(shù)位相同時(shí),浮點(diǎn)數(shù)比定點(diǎn)數(shù)表示范圍大得多; (2)浮點(diǎn)數(shù)為規(guī)格化數(shù)時(shí),精度遠(yuǎn)比定點(diǎn)數(shù)高;浮點(diǎn)數(shù)為規(guī)格化數(shù)時(shí),精度遠(yuǎn)比定點(diǎn)數(shù)高; (3)浮點(diǎn)運(yùn)算步驟比定點(diǎn)數(shù)多,速度比定點(diǎn)數(shù)低;浮點(diǎn)運(yùn)算步驟比定點(diǎn)數(shù)多,速度比定點(diǎn)數(shù)低; (4)判斷溢出的方法不同。判斷溢出的方法不同。 IEEE 754 IEEE 754 標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示格式標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示格式 X
19、 浮 浮 = Sf jf j1 j2 . Jm S1 S2 . Sn 符號(hào)位符號(hào)位Sf 階碼位階碼位 尾數(shù)數(shù)碼位尾數(shù)數(shù)碼位 總位數(shù)總位數(shù) 短浮點(diǎn)數(shù)短浮點(diǎn)數(shù): 1 8 23 32 長浮點(diǎn)數(shù)長浮點(diǎn)數(shù): 1 11 52 64 臨時(shí)浮點(diǎn)數(shù)臨時(shí)浮點(diǎn)數(shù): 1 15 64 80 X = S rj 例例2:設(shè)浮點(diǎn)數(shù)字長設(shè)浮點(diǎn)數(shù)字長16位,其中階碼位,其中階碼5位(含位(含1位位 階符),尾數(shù)階符),尾數(shù)11位(含位(含1位數(shù)符),將十進(jìn)制數(shù)位數(shù)符),將十進(jìn)制數(shù) +13/128寫成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù),并分別寫寫成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù),并分別寫 出它在定點(diǎn)機(jī)和浮點(diǎn)機(jī)中的機(jī)器數(shù)形式。出它在定點(diǎn)機(jī)和浮點(diǎn)機(jī)中的機(jī)器數(shù)
20、形式。 例例3:將十進(jìn)制數(shù)將十進(jìn)制數(shù)-54表示成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù),表示成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù), 并寫出它在定點(diǎn)機(jī)和浮點(diǎn)機(jī)中的機(jī)器數(shù)形式。并寫出它在定點(diǎn)機(jī)和浮點(diǎn)機(jī)中的機(jī)器數(shù)形式。 (其它要求同上例)(其它要求同上例) 例例4:設(shè)浮點(diǎn)數(shù)字長設(shè)浮點(diǎn)數(shù)字長16位,其中階碼位,其中階碼5位(含位(含1位階位階 符),尾數(shù)符),尾數(shù)11位(含位(含1位數(shù)符),寫出位數(shù)符),寫出-53/512對(duì)對(duì) 應(yīng)的浮點(diǎn)規(guī)格化數(shù)的原碼、補(bǔ)碼、反碼和階碼用應(yīng)的浮點(diǎn)規(guī)格化數(shù)的原碼、補(bǔ)碼、反碼和階碼用 移碼,尾數(shù)用補(bǔ)碼的形式。移碼,尾數(shù)用補(bǔ)碼的形式。 二、定點(diǎn)數(shù)的算術(shù)運(yùn)算二、定點(diǎn)數(shù)的算術(shù)運(yùn)算 (1) 移位移位運(yùn)算運(yùn)算 (2
21、) 補(bǔ)碼補(bǔ)碼 加減法運(yùn)算加減法運(yùn)算 (3) 原碼原碼一位乘法運(yùn)算一位乘法運(yùn)算 原碼原碼一位除法運(yùn)算一位除法運(yùn)算 補(bǔ)碼補(bǔ)碼一位乘法運(yùn)算一位乘法運(yùn)算 補(bǔ)碼補(bǔ)碼一位除法運(yùn)算一位除法運(yùn)算 (4) 補(bǔ)碼補(bǔ)碼二位乘法運(yùn)算二位乘法運(yùn)算 (5) 快速快速乘除法運(yùn)算方法乘除法運(yùn)算方法 移位運(yùn)算的實(shí)現(xiàn)移位運(yùn)算的實(shí)現(xiàn) 移位運(yùn)算移位運(yùn)算,用于提高某些運(yùn)算的速度或作為乘除法運(yùn)算的,用于提高某些運(yùn)算的速度或作為乘除法運(yùn)算的 子運(yùn)算。分為算術(shù)移位和邏輯移位。子運(yùn)算。分為算術(shù)移位和邏輯移位。 算術(shù)移位算術(shù)移位: : 對(duì)對(duì)有符號(hào)數(shù)有符號(hào)數(shù)進(jìn)行的移位,進(jìn)行的移位,小數(shù)點(diǎn)位置不變小數(shù)點(diǎn)位置不變。 規(guī)則規(guī)則: : (1) (1) 移
22、位后移位后符號(hào)位符號(hào)位不變;不變; (2) (2) 不同碼制機(jī)器數(shù)移位后空位填補(bǔ)規(guī)則,如不同碼制機(jī)器數(shù)移位后空位填補(bǔ)規(guī)則,如 下表:下表: 正數(shù)正數(shù) 碼碼 制制 原碼、補(bǔ)碼、反碼原碼、補(bǔ)碼、反碼 原原 碼碼 補(bǔ)補(bǔ) 碼碼 反反 碼碼 右移填補(bǔ)代碼右移填補(bǔ)代碼 0 0 1 1 負(fù)負(fù) 數(shù)數(shù) 左移填補(bǔ)代碼左移填補(bǔ)代碼 0 0 0 1 例例5 5:設(shè)機(jī)器數(shù)字長:設(shè)機(jī)器數(shù)字長8 8位(含一位符號(hào)位),位(含一位符號(hào)位), 若若A=A=6262,寫出三種機(jī)器數(shù)左右移一位和,寫出三種機(jī)器數(shù)左右移一位和 兩位后的表示形式以及相應(yīng)的真值,并分兩位后的表示形式以及相應(yīng)的真值,并分 析結(jié)果的正確性。析結(jié)果的正確性。
23、算術(shù)左右移規(guī)律總結(jié): 對(duì)于正數(shù),三種機(jī)器數(shù)移位后符號(hào)位均不變,左移時(shí)最高 位丟1,結(jié)果出錯(cuò);右移時(shí),最低位丟1,影響精度。 對(duì)于負(fù)數(shù),三種機(jī)器數(shù)移位后符號(hào)位均不變, 負(fù)數(shù)原碼,左移高位丟1,出錯(cuò),右移低位丟1,影響精度。 負(fù)數(shù)補(bǔ)碼,左移高位丟0,出錯(cuò),右移低位丟1,影響精度。 負(fù)數(shù)反碼,左移高位丟0,出錯(cuò),右移低位丟0,影響精度。 邏輯移位(無符號(hào)數(shù)的移位)邏輯移位(無符號(hào)數(shù)的移位) 左移左移1位位 右移右移1位位 左移左移2位位 右移右移2位位 無符號(hào)數(shù)無符號(hào)數(shù) 規(guī)律:規(guī)律:無符號(hào)數(shù)的左右移位,空出來的位都補(bǔ)無符號(hào)數(shù)的左右移位,空出來的位都補(bǔ)0. 補(bǔ)碼加減法的實(shí)現(xiàn)(以定點(diǎn)小數(shù)為例)補(bǔ)碼加減法
24、的實(shí)現(xiàn)(以定點(diǎn)小數(shù)為例) 基本公式:基本公式:X Y補(bǔ) 補(bǔ) = X補(bǔ)補(bǔ) Y補(bǔ)補(bǔ) ( (mod 2)小數(shù))小數(shù) X Y補(bǔ) 補(bǔ) = X補(bǔ)補(bǔ) Y補(bǔ)補(bǔ) ( (mod 2n+1)整數(shù))整數(shù) 特點(diǎn)特點(diǎn): (1)符號(hào)位)符號(hào)位參與參與運(yùn)算,結(jié)果符號(hào)位通過運(yùn)算自動(dòng)運(yùn)算,結(jié)果符號(hào)位通過運(yùn)算自動(dòng) 產(chǎn)生;產(chǎn)生; (2)運(yùn)算實(shí)際上為)運(yùn)算實(shí)際上為“模運(yùn)算模運(yùn)算”,因此,運(yùn)算過程,因此,運(yùn)算過程 中可能產(chǎn)生中可能產(chǎn)生模溢出模溢出,丟掉模后,不影響運(yùn)算結(jié)果。,丟掉模后,不影響運(yùn)算結(jié)果。 例例6:已知:已知A=0.1011,B=-0.0101.求求A+B補(bǔ)。補(bǔ)。 例例7:已知:已知A=-1001,B=-0101.求求A+B
25、補(bǔ)。補(bǔ)。 例例8:設(shè)機(jī)器數(shù)字長:設(shè)機(jī)器數(shù)字長8位,其中位,其中1位為符號(hào)位,位為符號(hào)位, 若若A=+15,B=+24,求,求A-B補(bǔ),并還原成補(bǔ),并還原成 真值。真值。 補(bǔ)碼加減法的溢出補(bǔ)碼加減法的溢出 溢出:溢出:運(yùn)算結(jié)果超出數(shù)據(jù)的表示范圍。分為上溢和下運(yùn)算結(jié)果超出數(shù)據(jù)的表示范圍。分為上溢和下 溢(或稱溢(或稱正溢出和負(fù)溢出正溢出和負(fù)溢出)。)。 例如:例如:X = +0.1011 Y = +0.1101 X補(bǔ) 補(bǔ) = 0.1011, Y補(bǔ)補(bǔ) = 0.1101 X+Y補(bǔ) 補(bǔ) = X補(bǔ)補(bǔ) + Y補(bǔ)補(bǔ) = 0.1011 + 0.1101 = 1.0100 正溢出正溢出 溢出的后果是結(jié)果的最高數(shù)值
26、位溢出的后果是結(jié)果的最高數(shù)值位侵入侵入符號(hào)位,使符號(hào)符號(hào)位,使符號(hào) 位遭到破壞。在計(jì)算機(jī)中,溢出是作為位遭到破壞。在計(jì)算機(jī)中,溢出是作為出錯(cuò)出錯(cuò)處理的。處理的。 補(bǔ)碼加減法的溢出判別補(bǔ)碼加減法的溢出判別 溢出判斷:兩種方法溢出判斷:兩種方法 (1)一位)一位符號(hào)位判斷法:對(duì)于加法,只有符號(hào)位判斷法:對(duì)于加法,只有正加正(正溢出)正加正(正溢出) 或負(fù)加負(fù)(負(fù)溢出)或負(fù)加負(fù)(負(fù)溢出)的情況可能產(chǎn)生溢出,判斷原則是:結(jié)果的情況可能產(chǎn)生溢出,判斷原則是:結(jié)果 符號(hào)位與源操作數(shù)相同則不溢出,不相同則溢出,對(duì)于減法,符號(hào)位與源操作數(shù)相同則不溢出,不相同則溢出,對(duì)于減法, 只有符號(hào)不同的倆數(shù)相減才可能溢出
27、,若有溢出正減負(fù)為正溢只有符號(hào)不同的倆數(shù)相減才可能溢出,若有溢出正減負(fù)為正溢 出,負(fù)減正為負(fù)溢出。出,負(fù)減正為負(fù)溢出。 (2 2)兩位)兩位符號(hào)位判斷法:即符號(hào)位判斷法:即變形補(bǔ)碼法變形補(bǔ)碼法判別判別,結(jié)果的雙符號(hào),結(jié)果的雙符號(hào) 位的值為位的值為 0101或或1010為溢出。為溢出。0101為正溢出,為正溢出,1010為負(fù)溢出,溢出時(shí),為負(fù)溢出,溢出時(shí), 高位符號(hào)是高位符號(hào)是結(jié)果的正確符號(hào)。結(jié)果的正確符號(hào)。 例例9:設(shè)設(shè)A=-11/16,B=-7/16,求,求A+B補(bǔ) 補(bǔ),用一位符 ,用一位符 號(hào)位判斷法判斷有無溢出,若有溢出,是什么溢出號(hào)位判斷法判斷有無溢出,若有溢出,是什么溢出 類型?類型
28、? 例例10:試用:試用變形補(bǔ)碼法變形補(bǔ)碼法計(jì)算計(jì)算A+B并判斷有無溢出,并判斷有無溢出, 并指出是什么溢出類型,設(shè)并指出是什么溢出類型,設(shè)A=+11/16,B=+7/16。 例例11:試用:試用變形補(bǔ)碼法變形補(bǔ)碼法計(jì)算計(jì)算A+B并判斷有無溢出,并判斷有無溢出, 并指出什么溢出類型,設(shè)并指出什么溢出類型,設(shè)A=-11/16,B=-7/16。 例例12:已知:已知X = +11/16 Y = +3/16 ,用,用雙符號(hào)位法雙符號(hào)位法判判 斷斷X+Y補(bǔ) 補(bǔ)有無溢出,若溢出,是什么類型的溢出。 有無溢出,若溢出,是什么類型的溢出。 例例13:已知:已知:X = 0.1011 Y = 0.0101 ,
29、用,用雙符號(hào)位法雙符號(hào)位法 判斷判斷X+Y補(bǔ) 補(bǔ)有無溢出,若溢出,是什么類型的溢出。 有無溢出,若溢出,是什么類型的溢出。 原碼一位乘運(yùn)算原碼一位乘運(yùn)算 基本公式:基本公式: 設(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的絕對(duì)值的絕對(duì)值 引例:引例: 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 手工運(yùn)算過程手工運(yùn)算過程 原碼一位乘運(yùn)算原碼一位乘運(yùn)算 原碼一位乘運(yùn)算原碼一位乘運(yùn)算 |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 手工運(yùn)算過程手工運(yùn)算過程 (筆算)(筆算) 原碼一位乘運(yùn)算原碼一位乘運(yùn)算 |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 手工運(yùn)算過程(筆算)手工
32、運(yùn)算過程(筆算) 原碼一位乘運(yùn)算原碼一位乘運(yùn)算 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 手工運(yùn)算過程手工運(yùn)算過程 乘數(shù)有乘數(shù)有四四位有效數(shù)位,所以共完成位有效數(shù)位,所以共完成四四次加法次加法 和和四四次右移,再用一步完成兩數(shù)符號(hào)次右移,再用一步完成兩數(shù)符號(hào)異或異或求求 積的符號(hào)積的符號(hào), 結(jié)
33、果為結(jié)果為 -0.10001111。 原碼一位乘運(yùn)算規(guī)則原碼一位乘運(yùn)算規(guī)則 原碼一位乘運(yùn)算規(guī)則:原碼一位乘運(yùn)算規(guī)則: 1. 1. 乘積的乘積的符號(hào)位符號(hào)位由兩數(shù)符號(hào)位由兩數(shù)符號(hào)位“異或異或”產(chǎn)生,符產(chǎn)生,符 號(hào)位不參與運(yùn)算;號(hào)位不參與運(yùn)算; 2. 2. 部分積可采用一位或兩位符號(hào)位;部分積可采用一位或兩位符號(hào)位; 3. 3. 乘積的數(shù)值部分由兩數(shù)絕對(duì)值相乘積的數(shù)值部分由兩數(shù)絕對(duì)值相乘乘產(chǎn)生,產(chǎn)生,通過通過n n 次次“加法加法”和和n n次次“右移右移”操作實(shí)現(xiàn)操作實(shí)現(xiàn)。(n(n為乘數(shù)的有為乘數(shù)的有 效數(shù)字的位數(shù)效數(shù)字的位數(shù)) ) 原碼一位乘運(yùn)算實(shí)例原碼一位乘運(yùn)算實(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 手工運(yùn)算過程手工運(yùn)算過程 計(jì)算機(jī)
35、內(nèi)運(yùn)算的實(shí)現(xiàn)方法計(jì)算機(jī)內(nèi)運(yùn)算的實(shí)現(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,用原碼一,用原碼一 位乘實(shí)現(xiàn)位乘實(shí)現(xiàn) X*Y原 原。 。 原碼兩位乘(選講)原碼兩位乘(選講) 兩位乘數(shù)的值可以有四種可能組合,每種組合對(duì)應(yīng)的操作: 00 相當(dāng)于0*X,部分積右移2位,不進(jìn)行其它運(yùn)算; 01 相當(dāng)于1*X,部分積加1X后右移2位; 10 相當(dāng)于2*X,部分積加 2X后右移2位; 11 相當(dāng)于3*X,部分積加3X后右移2位
36、。 原碼兩位乘運(yùn)算規(guī)則(部分積用三位符號(hào)位): 例16:設(shè)X = 0.111111 ,Y = -0.111001,用原碼兩 位乘求X*Y原。 例17:設(shè)X = 0.100111, Y = 0.100111,用原碼兩 位乘求X*Y原。 補(bǔ)碼乘法運(yùn)算補(bǔ)碼乘法運(yùn)算 原碼乘法不難實(shí)現(xiàn),但有原碼乘法不難實(shí)現(xiàn),但有兩個(gè)問題兩個(gè)問題: 1. 符號(hào)位與數(shù)值位分開處理,不方便;符號(hào)位與數(shù)值位分開處理,不方便; 2. 若數(shù)據(jù)為補(bǔ)碼形式,可能需要多于兩次若數(shù)據(jù)為補(bǔ)碼形式,可能需要多于兩次 補(bǔ)碼補(bǔ)碼到到原碼的變換。原碼的變換。 也可以直接用也可以直接用補(bǔ)碼補(bǔ)碼完成乘法運(yùn)算,即從補(bǔ)碼開始,完成乘法運(yùn)算,即從補(bǔ)碼開始,
37、直接得到補(bǔ)碼的積。直接得到補(bǔ)碼的積。 補(bǔ)碼一位乘法運(yùn)算的補(bǔ)碼一位乘法運(yùn)算的算法規(guī)則算法規(guī)則 補(bǔ)碼一位乘算法規(guī)則:補(bǔ)碼一位乘算法規(guī)則: 1.1. X X、Y Y的符號(hào)位都參加運(yùn)算,部分積采用的符號(hào)位都參加運(yùn)算,部分積采用雙雙符號(hào)位;符號(hào)位; 2.2.被乘數(shù)符號(hào)任意,乘數(shù)符號(hào)為被乘數(shù)符號(hào)任意,乘數(shù)符號(hào)為正正,按,按原碼原碼運(yùn)算規(guī)則運(yùn)運(yùn)算規(guī)則運(yùn) 算。算。 3.3.被乘數(shù)符號(hào)任意,乘數(shù)符號(hào)為被乘數(shù)符號(hào)任意,乘數(shù)符號(hào)為負(fù)負(fù),乘數(shù)補(bǔ)碼,乘數(shù)補(bǔ)碼去掉符號(hào)去掉符號(hào) 位位與被乘數(shù)相乘,最后與被乘數(shù)相乘,最后加上加上-X X 補(bǔ) 補(bǔ)進(jìn)行校正。 進(jìn)行校正。 4.4.進(jìn)行進(jìn)行n n次加運(yùn)算,次加運(yùn)算,n n次右移,次
38、右移,積的符號(hào)位積的符號(hào)位由運(yùn)算過程自由運(yùn)算過程自 動(dòng)產(chǎn)生,這點(diǎn)與原碼運(yùn)算不同。動(dòng)產(chǎn)生,這點(diǎn)與原碼運(yùn)算不同。 5.被乘數(shù)和乘數(shù)符號(hào)均為任意,用比較法(Booth算法)。 (1 1)X X、Y Y的符號(hào)位都參加運(yùn)算,部分積采用雙符號(hào)位;的符號(hào)位都參加運(yùn)算,部分積采用雙符號(hào)位; (2 2)乘數(shù)最低位之后增加一位附加位)乘數(shù)最低位之后增加一位附加位yn+1 ,且令初值且令初值yn+1=0; (3 3)每位部分積運(yùn)算規(guī)則如下:每位部分積運(yùn)算規(guī)則如下: yn yn+1= 00 時(shí),時(shí), 部分積加零,再右移部分積加零,再右移1位位; yn yn+1= 01 時(shí),時(shí), 部分積加部分積加 X補(bǔ), 補(bǔ), 再 再
39、右移右移1位位; ; yn yn+1= 10 時(shí),時(shí), 部分積加部分積加 -X補(bǔ), 補(bǔ), 再 再右移右移1位位; ; yn yn+1= 11 時(shí),時(shí), 部分積加零,再右移部分積加零,再右移1位;位; (4 4)進(jìn)行進(jìn)行n+1n+1次加法,次加法,n n次右移,次右移,積的符號(hào)由運(yùn)算過程自動(dòng)產(chǎn)生。積的符號(hào)由運(yùn)算過程自動(dòng)產(chǎn)生。 例18:已知X補(bǔ)=1.0101,Y補(bǔ)=0.1101,用補(bǔ)碼一 位乘求X*Y補(bǔ)。 例19:已知X補(bǔ)=0.1101,Y補(bǔ)=1.0101,用補(bǔ)碼一 位乘求X*Y補(bǔ)。 例20:已知X補(bǔ)=1.1101,Y補(bǔ)=0.1101,用補(bǔ)碼 一位乘求X*Y補(bǔ)。 例21:已知X補(bǔ)=0.0111,Y
40、補(bǔ)=1.1001,用補(bǔ)碼 一位乘求X*Y補(bǔ)。 補(bǔ)碼一位乘法運(yùn)算實(shí)例(比較法)補(bǔ)碼一位乘法運(yùn)算實(shí)例(比較法) 已知已知: X補(bǔ) 補(bǔ) = 0.1101 Y補(bǔ)補(bǔ) = 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補(bǔ) 補(bǔ) = 1.0011 X*Y補(bǔ) 補(bǔ) = 0.10001111 例22:X補(bǔ) 補(bǔ) = 1.0101 Y補(bǔ)補(bǔ) = 1.0011,用比較法求 ,用比較法求 X*Y補(bǔ) 補(bǔ) 例23:X補(bǔ) 補(bǔ) = 1.1101 Y補(bǔ)補(bǔ) = 0.0111,用比較法求 ,用比較法求 X*Y補(bǔ) 補(bǔ) 原碼原碼除法除法(以定點(diǎn)小數(shù)為例以定點(diǎn)小數(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的絕對(duì)值的絕對(duì)值 例如:例如: 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 原碼除運(yùn)算方法分析原碼除運(yùn)算方法分析(以定點(diǎn)小數(shù)為例以定點(diǎn)小數(shù)為例) 機(jī)器實(shí)現(xiàn)問題:機(jī)器實(shí)現(xiàn)問題: 1. 需單獨(dú)設(shè)計(jì)比較器線路;需單獨(dú)設(shè)計(jì)比較器線路; 2. 需需2n位的減法器線路。位的減法器線路。 解決方案:解決方案: 1.
43、 比較比較操作改由操作改由“試減試減”實(shí)現(xiàn);實(shí)現(xiàn); 2. 將除數(shù)右移改為將除數(shù)右移改為部分余數(shù)左移部分余數(shù)左移; 3. 減法由減法由+-Y補(bǔ) 補(bǔ)轉(zhuǎn)化為加法實(shí)現(xiàn)。 轉(zhuǎn)化為加法實(shí)現(xiàn)。 原碼恢復(fù)余數(shù)除法的算法規(guī)則原碼恢復(fù)余數(shù)除法的算法規(guī)則 1.1.除法運(yùn)算前,應(yīng)滿足條件:除法運(yùn)算前,應(yīng)滿足條件:X X* *YY* *, ,且且Y Y* *00, ,否則,按溢出否則,按溢出 或非法除數(shù)處理;或非法除數(shù)處理; 2.2.符號(hào)位不參與運(yùn)算符號(hào)位不參與運(yùn)算,單獨(dú)處理:,單獨(dú)處理:q qf f= x= xf f y yf f ; ; 3.3.部分余數(shù)采用部分余數(shù)采用單符號(hào)位或雙符號(hào)位單符號(hào)位或雙符號(hào)位; 4.4
44、.每步部分余數(shù)運(yùn)算規(guī)則:每步部分余數(shù)運(yùn)算規(guī)則: 5.5.共需經(jīng)過共需經(jīng)過n+1n+1次取商和次取商和n n次部分余數(shù)的左移實(shí)現(xiàn)。次部分余數(shù)的左移實(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 *補(bǔ) 補(bǔ) (減除數(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 *補(bǔ) 補(bǔ) 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 *補(bǔ) 補(bǔ) 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*補(bǔ) 補(bǔ) = 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ù)法計(jì)算的恢復(fù)余數(shù)法計(jì)算X/Y原 原 原碼加減交替除法算法規(guī)則原碼加減交替除法算法規(guī)則 1.1.除法運(yùn)算前,應(yīng)滿足條件:除法運(yùn)算前,應(yīng)滿足條件:X X* *YY* *, ,且且Y Y* *00, ,否則,按溢否則,按溢 出或非法除數(shù)處理;出或非法除數(shù)處理; 2.2.符號(hào)位不參與運(yùn)算符號(hào)位不參與運(yùn)算,單獨(dú)處理:,單獨(dú)處理:q qf f= x= xf f y yf f ; ; 3.3.部分余數(shù)采用部分余數(shù)采用單符號(hào)位或雙符號(hào)位單符號(hào)位或雙符號(hào)位; 4.4.每步部分余數(shù)運(yùn)算規(guī)則:每步部分余數(shù)運(yùn)算規(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ù)的左移實(shí)現(xiàn)(次部分余數(shù)的左移實(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 *補(bǔ) 補(bǔ) (減除數(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 *補(bǔ) 補(bǔ) 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 *補(bǔ) 補(bǔ) 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*補(bǔ) 補(bǔ) = 1.0011 加減交替加減交替 除除 法法 X/Y原 原= 0.1101 R = 0.0111 2 2- -4 4 例例25: 假如假如X = -0.1001 Y =
49、 - 0.1101 ,用原碼,用原碼 的加減交替法計(jì)算的加減交替法計(jì)算X/Y原 原 補(bǔ)碼除法(加減交替法)補(bǔ)碼除法(加減交替法) 運(yùn)算規(guī)則 符號(hào)位參加運(yùn)算,除數(shù)和被除數(shù)均用補(bǔ)碼表示; 第一步的運(yùn)算 被除數(shù)與除數(shù)同號(hào),被除數(shù)減去除數(shù),加-y補(bǔ); 被除數(shù)與除數(shù)異號(hào),被除數(shù)加上除數(shù),加y補(bǔ); 后續(xù)步驟的運(yùn)算 余數(shù)與除數(shù)同號(hào),商上1,余數(shù)左移一位減去除數(shù); 余數(shù)與除數(shù)異號(hào),商上0,余數(shù)左移一位加上除數(shù)。 重復(fù)步驟 ,共做n次部分余數(shù)左移,n次加法,n+1次取商, 最后一位商恒置1,不用求。 如果對(duì)商的精度沒有特殊要求,一般可采用“末位恒置1”法,此 法操作簡單,易于實(shí)現(xiàn) 。 2021年6月27日星期日
50、81 例26.設(shè) x = 0.1011,y = 0.1101,求 并還原真值。 補(bǔ) 補(bǔ) x y x補(bǔ) 補(bǔ) = 1.0101 y補(bǔ) 補(bǔ) = 0.1101 y補(bǔ) 補(bǔ) = 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 異號(hào)做加法異號(hào)做加法 1 0 . 0 0 1 0同號(hào)上同號(hào)上“1” 1 . 0 1 1 11 異號(hào)上異號(hào)上“0” +y補(bǔ) 補(bǔ) 1 . 1 0 1 11 0 異號(hào)上異號(hào)上“0” +y補(bǔ) 補(bǔ) 0 . 0 0 1 11 0 0同號(hào)上同號(hào)上“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 補(bǔ) 補(bǔ)= 1.0011 x y 0 0 1 1 +y補(bǔ) 補(bǔ) x y = 0.1101則則 被除數(shù)被除數(shù)(余數(shù)余數(shù)) 商商 說說 明明 例27:已知x=0.1001,y=0.1101,用補(bǔ)碼加減交替法求x/y補(bǔ)。 例28:已知x=-0.1001,y=0.1101,用補(bǔ)碼加減交替法求x/y補(bǔ)。 三、浮點(diǎn)數(shù)的運(yùn)算三、浮點(diǎn)數(shù)的運(yùn)算 浮點(diǎn)數(shù)加減運(yùn)算浮點(diǎn)數(shù)加減運(yùn)算 由對(duì)階、由對(duì)階、 尾數(shù)加減、尾數(shù)加減、 規(guī)格化、規(guī)格化、 舍入和結(jié)果判溢出舍入和結(jié)果判溢出 五步五步實(shí)現(xiàn)。實(shí)現(xiàn)。 浮點(diǎn)
52、數(shù)乘除運(yùn)算浮點(diǎn)數(shù)乘除運(yùn)算 由階碼加減由階碼加減 、尾數(shù)乘除、規(guī)格化、舍入和結(jié)果判、尾數(shù)乘除、規(guī)格化、舍入和結(jié)果判 溢出溢出五步五步實(shí)現(xiàn)。實(shí)現(xiàn)。 浮點(diǎn)數(shù)加減運(yùn)算浮點(diǎn)數(shù)加減運(yùn)算 運(yùn)算步驟:運(yùn)算步驟: (1)對(duì)階操作,求階差:)對(duì)階操作,求階差: 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、時(shí),需的組合時(shí),需 左規(guī);當(dāng)尾數(shù)出現(xiàn)左規(guī);當(dāng)尾數(shù)出現(xiàn)01.X或或10.X的組合時(shí),需右規(guī);的組合時(shí),需右規(guī); (4)舍入操作,分為零舍一入法和末位恒置一法;)舍入操作,分為零舍一入法和末位恒置一法; (5)判結(jié)果的正確性,即檢查階碼,結(jié)果)判結(jié)果的正確性,即檢查階碼,結(jié)果j補(bǔ)補(bǔ)=01為上為上 溢(出錯(cuò)),結(jié)果溢(出錯(cuò)),結(jié)果 j補(bǔ)補(bǔ)=10,為下溢,當(dāng)機(jī)器零處理,為下溢,當(dāng)機(jī)器零處理 。 浮點(diǎn)數(shù)加運(yùn)算浮點(diǎn)數(shù)加運(yùn)算舉例舉例 已知:已知:X= 2010 0.11011011, Y= 2100 (-0.10101100),浮點(diǎn)數(shù),浮點(diǎn)數(shù)階階 碼用碼用 5 位補(bǔ)碼(含位補(bǔ)碼(含2位符號(hào)位位符號(hào)位 )表示
54、,)表示, 尾數(shù)用尾數(shù)用 10 位補(bǔ)碼(含位補(bǔ)碼(含2位位 符號(hào)位符號(hào)位 )表示,)表示,求:求: Z1 = X+Y = ? 解:首先,寫出浮點(diǎn)數(shù)解:首先,寫出浮點(diǎn)數(shù)X、Y的正確的補(bǔ)碼表示:的正確的補(bǔ)碼表示: 階碼用階碼用 5 位補(bǔ)碼位補(bǔ)碼 (含(含2位符號(hào)位位符號(hào)位 ),),尾數(shù)用尾數(shù)用 10 位補(bǔ)碼(含位補(bǔ)碼(含 2位符號(hào)位位符號(hào)位 ) X浮 浮 = 00, 010; 00.11011011 Y浮 浮 = 00, 100; 11.01010100 浮點(diǎn)數(shù)加運(yùn)算舉例浮點(diǎn)數(shù)加運(yùn)算舉例 (1)對(duì)階)對(duì)階 j 補(bǔ) 補(bǔ)= jX 補(bǔ)補(bǔ)+-jY 補(bǔ)補(bǔ)= 00, 010 + 11, 100 = 11, 1
55、10 j = -2 0, 即即jX jY 因此,修改因此,修改 MX補(bǔ) 補(bǔ) = =00.00110110(即右移 (即右移2 2位)位) jx補(bǔ) 補(bǔ)= 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的組合時(shí),的組合時(shí), 需左規(guī),階碼減一;當(dāng)尾數(shù)出現(xiàn)需左規(guī),階碼減一;當(dāng)尾數(shù)出現(xiàn)01.X或或10.X的組合時(shí),的組合時(shí), 需右規(guī),階碼加一;需右規(guī),階碼加一; 本例尾數(shù)為本例尾數(shù)為11.1X,應(yīng)執(zhí)行一次左規(guī)操作,故得,應(yīng)執(zhí)行一次
56、左規(guī)操作,故得 Sz1補(bǔ) 補(bǔ) = 11. 00010100, , jZ1補(bǔ) 補(bǔ) = 00, 011 (4)舍入處理)舍入處理 舍入舍入按照一定規(guī)則舍去多余的位數(shù),并對(duì)保留位進(jìn)行按照一定規(guī)則舍去多余的位數(shù),并對(duì)保留位進(jìn)行 調(diào)整的過程。調(diào)整的過程。 主要方法:主要方法: 末位恒置末位恒置1 1法:法:在舍去尾數(shù)在舍去尾數(shù)最低位之后數(shù)值最低位之后數(shù)值的同時(shí),將尾的同時(shí),將尾 數(shù)末位置數(shù)末位置1。 0 0舍舍1 1入法:入法: 當(dāng)尾數(shù)用原碼表示,或用補(bǔ)碼表示的正數(shù)時(shí)當(dāng)尾數(shù)用原碼表示,或用補(bǔ)碼表示的正數(shù)時(shí), 若移出部分的最高位為若移出部分的最高位為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的
57、最高位為1 1,在舍去時(shí),將尾數(shù)末位,在舍去時(shí),將尾數(shù)末位+1+1。 當(dāng)尾數(shù)用補(bǔ)碼表示的負(fù)數(shù)時(shí)當(dāng)尾數(shù)用補(bǔ)碼表示的負(fù)數(shù)時(shí), 若移出各位全為若移出各位全為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的最高位為0,0,其余各位不全為其余各位不全為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的最高位為1,1,其余各位全為其余各位全為0 0,舍去;,舍去; 若移出部分的最高位為若移出部分的最高位為1,1,其余各位不全為其余各位不全為0 0,末位,末位+1+1。 (5)檢查溢出)檢查溢出 浮點(diǎn)溢出用浮點(diǎn)溢出用階碼溢出階碼溢出表示。表示。 溢出有兩種情況:溢出有兩種情況: 階符為階符為1
58、0,階碼下溢:用機(jī)器零表示;,階碼下溢:用機(jī)器零表示; 階符為階符為01,階碼上溢:,階碼上溢:置溢出標(biāo)志,轉(zhuǎn)溢出處理。置溢出標(biāo)志,轉(zhuǎn)溢出處理。 本例中的階碼不溢出。本例中的階碼不溢出。 則得則得 Z1浮 浮= 00, 011; 11. 00010101( (末位恒置一末位恒置一), 即即 Z1 =2011 (-0.11101011) 例例29:已知兩浮點(diǎn)數(shù):已知兩浮點(diǎn)數(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。 浮點(diǎn)數(shù)乘除運(yùn)算浮點(diǎn)數(shù)乘除運(yùn)算 運(yùn)算步驟:運(yùn)算步驟: (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 = ? 已知:已知: 浮點(diǎn)數(shù)乘法運(yùn)算舉例浮點(diǎn)數(shù)乘法運(yùn)算舉例 已知:已知: X=
60、2010 0.1011, Y=2100 (-0.1101) 求:求: Z = X Y = ? 寫出寫出X、Y的正確的浮點(diǎn)數(shù)表示:的正確的浮點(diǎn)數(shù)表示: 階碼用階碼用 5 位補(bǔ)位補(bǔ)碼碼(含(含2位符號(hào)位位符號(hào)位 ) 尾數(shù)用尾數(shù)用 5 位補(bǔ)碼位補(bǔ)碼 (含(含1位符號(hào)位位符號(hào)位 ) X浮 浮 = 00, 010; 0.1011 Y浮 浮 = 00, 100; 1. 0011 (1)階碼相加)階碼相加 若階碼采用補(bǔ)碼,則按補(bǔ)碼加法規(guī)則進(jìn)行。若階碼采用補(bǔ)碼,則按補(bǔ)碼加法規(guī)則進(jìn)行。 jX 補(bǔ) 補(bǔ)+jY 補(bǔ)補(bǔ)=00,010+00,100=00,110 (2 2)尾數(shù)相乘)尾數(shù)相乘( (比較法比較法) ) Sz
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年寵物食品營養(yǎng)配方考題試題及答案
- 寵物營養(yǎng)學(xué)與其他學(xué)科的關(guān)聯(lián)試題及答案
- 二手車評(píng)估與風(fēng)險(xiǎn)防控的結(jié)合試題及答案
- 房地產(chǎn)工作年終述職報(bào)告
- 重視藥物使用中的患者反饋試題及答案
- 考前沖刺2024食品質(zhì)檢員考試試題及答案
- 食品質(zhì)量問題源頭追溯與考核試題及答案
- 汽車維修工專業(yè)術(shù)語解析試題及答案
- 全新視覺傳播設(shè)計(jì)相關(guān)試題及答案
- 培訓(xùn)管理人員在崗能力提升計(jì)劃
- 山東大學(xué)工程流體力學(xué)(杜廣生)課件第5章 粘性流體的一維流動(dòng)
- 《建筑樁基技術(shù)規(guī)范》JGJ94-94送審報(bào)告
- 員工入職確認(rèn)單
- 土地評(píng)估剩余法測(cè)算表
- 初三優(yōu)秀學(xué)生座談會(huì)通用課件通用PPT課件
- T∕CAGHP 065.2-2019 地質(zhì)災(zāi)害防治工程工程量清單計(jì)價(jià)規(guī)范(試行)
- 園林綠化工程施工組織機(jī)構(gòu)方案
- 室內(nèi)智能加濕器設(shè)計(jì)說明
- 發(fā)電機(jī)整體氣密試驗(yàn)的要求
- PCN-ECN管理培訓(xùn)材料(供應(yīng)商版)
- 渣土車輛駕駛員管理制度
評(píng)論
0/150
提交評(píng)論