第二章 運算方法和運算器1《計算機組成原理課件》.ppt_第1頁
第二章 運算方法和運算器1《計算機組成原理課件》.ppt_第2頁
第二章 運算方法和運算器1《計算機組成原理課件》.ppt_第3頁
第二章 運算方法和運算器1《計算機組成原理課件》.ppt_第4頁
第二章 運算方法和運算器1《計算機組成原理課件》.ppt_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 運算方法和運算器,數(shù)據(jù)與文字的表示方法 定點加法、減法運算 定點乘法運算 定點除法運算 定點運算器的組成 浮點運算方法和浮點運算器,2.1 數(shù)據(jù)與文字的表示方法,計算機中的數(shù)據(jù)分兩類 1.數(shù)值數(shù)據(jù)(有值) 例:18 -2 -0.1011 23/32 數(shù)軸 0 2.非數(shù)值數(shù)據(jù)(字母,符號,漢字) 例:A B C a b c ! # $ , . ” ; : 電腦,數(shù)據(jù)庫,數(shù)據(jù)的表示方法,定點數(shù)(表示范圍小,硬件簡單) 浮點數(shù)(表示范圍大,硬件復(fù)雜) 真值與機器數(shù) 數(shù)的機器碼表示方法 原碼表示法 補碼表示法 反碼表示法 移碼表示法,1)定點表示法,符號,數(shù)值, 純小數(shù): a、定點小數(shù)表示:

2、XS. X1 X2 Xn(原碼、反碼、補碼) b、范圍:0 | X | 0.11111 即:0 | X |1-2-n,n位,1位,由于約定在固定的位置,小數(shù)點就不再使用記號“.”來表示。, 純整數(shù),a、定點整數(shù)表示:Xs X1 X2 Xn (原碼、反碼、補碼) b、范圍:0 | X | 11111 即:0 | X | 2n-1,目前計算機中多采用定點純整數(shù)表示。 由于有些數(shù)據(jù)用定點數(shù)不易表示,因而采用浮點表示法。,2)浮點表示法,定義: 任意一個R進制都可以通過移動小數(shù)點的位置寫成 X=RE M 式中: R是基數(shù),可以取2,8,10,16,一旦定義則不能改變,是隱含的。M是純小數(shù)(含數(shù)的符號)

3、,稱為尾數(shù),表示數(shù)X的全部有效數(shù)字。 E是階碼,純整數(shù),指出小數(shù)點在該數(shù)中的位置。 由于階碼可以取不同的數(shù)值,所以,小數(shù)點的位置是不確定的,這種數(shù)被稱為浮點數(shù)。 二進制浮點數(shù)的表示格式: X=2E M, 浮點數(shù)的表示方案:,:,:, 浮點數(shù)的表示方案:,:IEEE754標準(基數(shù)R2),32位浮點數(shù):,1位,23位,8位(移碼表示),64位浮點數(shù):,1位,52位,11位(移碼表示),IEEE754標準中階碼E采用移碼方法來表示正負指數(shù),將浮點數(shù)的指數(shù)真值e變成階碼E時,應(yīng) 32位浮點數(shù):Ee127 (27-1) 64位浮點數(shù):Ee1023 (210-1),定義: 所謂規(guī)格化數(shù),就是非0的尾數(shù),

4、其絕對值應(yīng)大于或等于05。 判別方法: 如果用原碼表示,規(guī)格化數(shù)的尾數(shù)應(yīng)滿足 1/2|S|S-1,這樣,用補碼表示的規(guī)格化尾數(shù)即為尾數(shù)數(shù)值最高位與符號位相反。 規(guī)格化: 存儲在計算機中的浮點數(shù)以及運算結(jié)果的浮點數(shù)都應(yīng)為規(guī)格化數(shù),如果尾數(shù)不是規(guī)格化數(shù),要用移位方法把他變?yōu)橐?guī)格化數(shù),這種處理過程,稱為規(guī)格化。,規(guī)格化的原碼:0.1 正數(shù) 1.1 負數(shù) 規(guī)格化的補碼:0.1 正數(shù) 1.0 負數(shù),尾數(shù)規(guī)格化,IEEE754標準中 一個規(guī)格化的32位浮點數(shù)的真值可表示為 : (1)s(1.)2127 e127 一個規(guī)格化的64位浮點數(shù)的真值為: (1)s(1.)21023 e1023,當(dāng)階碼E 為全0且

5、尾數(shù)M 也為全0時,表示的真值x 為零,結(jié)合符號位S 為0或1,有0之分。 當(dāng)階碼E 為全1且尾數(shù)M 為全0時,表示的真值x 為無窮大,結(jié)合符號位S 為0或1,也有之分。 這樣在32位浮點數(shù)表示中,要除去E 用全0和全1即(255)10表示零和無窮大的特殊情況,指數(shù)的偏移值e不選128(10000000),而選127(01111111)。對于規(guī)格化浮點數(shù),E 的范圍變?yōu)?到254,真正的指數(shù)值e 則為-126到+127。因此32位浮點數(shù)表示的絕對值的范圍是10-381038(以10的冪表示)。,例1 若浮點數(shù)的二進制存儲格式為(41360000)16,求其32位浮點數(shù)的十進制值。, 于是有(1

6、)s1.M2e,解:,將十六進制數(shù)展開后,可得二進制數(shù)格式為,指數(shù)e階碼127,100000100111111100000011=(3)10,包括隱藏位1的尾數(shù)1.M,1.011 0110 0000 0000 0000 0000,1.011011,(1.011011)23,1011.011,(11.375)10,例2 將十進制數(shù)數(shù)20.59375轉(zhuǎn)換成32位浮點數(shù)的二進制格式來存儲。,解:,首先分別將整數(shù)和分數(shù)部分轉(zhuǎn)換成二進制數(shù):,20.5937510100.10011,然后移動小數(shù)點,使其在第1,2位之間,10100.10011,1.010010011,2,4,e4,S,0,E,4,+,12

7、7,=,131,M=,010010011,最后得到32位浮點數(shù)的二進制存儲格式為:,0100 0001 1010 0100 1100 0000 0000 0000,(41A4C000)16,C語言求IEEE754浮點數(shù)與十進制之間轉(zhuǎn)換的代碼 #include int main() float a; int *pt_a = (int *) ,練習(xí): 1、將20.1875轉(zhuǎn)換成,32位浮點數(shù)存儲?41A18000H 2、若浮點數(shù)的二進制存儲格式為(41A18000)16,求其十進制值? 作業(yè): 將十進制數(shù)數(shù)17.296875轉(zhuǎn)換成位浮點數(shù)的二進 制格式來存儲?,3.十進制數(shù)串的表示方法 目前,大多

8、數(shù)通用性較強的計算機都能直接處理十進制形式表示的數(shù)據(jù)。十進制數(shù)串在計算機內(nèi)主要有兩種表示形式: (1)字符串形式 字符串形式:一個字節(jié)存放一個十進制的數(shù)位或符號位。 為了指明這樣一個數(shù),需要給出該數(shù)在主存中的起始地址和位數(shù)(串的長度)。,(2)壓縮的十進制數(shù)串形式 壓縮的十進制數(shù)串形式:一個字節(jié)存放兩個十進制的數(shù)位。 用壓縮的十進制數(shù)串表示一個數(shù),要占用主存連續(xù)的多個字節(jié)。 每個數(shù)位占用半個字節(jié)(即4個二進制位),其值可用二十編碼(BCD碼)或數(shù)字符的ASCII碼的低4位表示。 符號位也占半個字節(jié)并放在最低數(shù)字位之后,其值選用四位編碼中的六種冗余狀態(tài)中的有關(guān)值,如用12(C)表示正號用13(D

9、)表示負號。在這種表示中,規(guī)定數(shù)位加符號位之和必須為偶數(shù),當(dāng)和不為偶數(shù)時,應(yīng)在最高數(shù)字位之前補一個0。例如 123 和12分別被表示成: 1 2 3 C(+123) 0 1 2 D(-12),數(shù)的機器碼表示定點數(shù)的表示方法,原碼表示法 補碼表示法 反碼表示法 移碼表示法,數(shù)的機器碼表示定點數(shù)的表示法(原碼),定點小數(shù)表示: Ns. N1 N2 Nn 定義: X 原 = 定點整數(shù)表示:Ns N1 N2 Nn 定義: X 原 =,X,1 - X,0 X 1,-1 X 0,X,2n - X,0 X 2n,- 2n X 0,數(shù)的機器碼表示定點數(shù)的表示法(原碼),實例:X1 = 0.10110 -0.1

10、0110 0.0000 X 原= 0.10110 1.10110 0.0000 1.0000 實例:X1 = 10110 -10110 0000 X 原= 010110 110110 00000 10000,數(shù)的機器碼表示定點數(shù)的表示法(原碼),性質(zhì): 原碼為符號位加數(shù)的絕對值,符號位0正1負 原碼零有兩個編碼,+0和 -0編碼不同 原碼難以用于加減運算 N+1位二進制原碼所表示的范圍:,小數(shù):MAX=1-2-n ,MIN=(1-2-n ) 整數(shù):MAX=2n-1 ,MIN=(2n-1 ),數(shù)的機器碼表示定點數(shù)的表示法(補碼),補碼是在“?!焙汀巴唷钡母拍钕聦?dǎo)出的。 “模”是指一個計量系統(tǒng)的

11、計量范圍,即產(chǎn)生“溢出”的量。,數(shù)的機器碼表示定點數(shù)的表示法(補碼),現(xiàn)在是北京時間3點整,而時鐘卻指向5點。如何調(diào)整?,5-2=3,5+10=3(12自動丟失。12就是模),數(shù)的機器碼表示定點數(shù)的表示法(補碼),繼續(xù)推導(dǎo): 5-2=5+10(MOD 12) 5+(-2)=5+10(MOD 12) -2=10(MOD 12) 結(jié)論:,可以說:在模為12的情況下,-2的補碼就是10。 一個負數(shù)用其補碼代替,同樣可以得到正確的運算結(jié)果。,數(shù)的機器碼表示定點數(shù)的表示法(補碼),進一步結(jié)論: 在計算機中,機器能表示的數(shù)據(jù)位數(shù)是一定的,其運算都是有模運算。如果是n位整數(shù),其模為2n1。如果是n位小數(shù),其

12、模為2。 若運算結(jié)果超出了計算機所能表示的數(shù)值范圍,則只保留它的小于模的低n位的數(shù)值,超過n位的高位部分就自動舍棄了。,數(shù)的機器碼表示定點數(shù)的表示法(補碼),定義: 任意一個X的補碼為X補,可以用該數(shù)加上其模M來表示。 X補=X+M,數(shù)的機器碼表示定點數(shù)的表示法(補碼),定點小數(shù)表示: Ns. N1 N2 Nn 定義: X 補 = (MOD 2) 定點整數(shù)表示:Ns N1 N2 Nn 定義: X 補 =,X,2+ X,0 X 1,-1 X 0,X,2n+1 + X,0 X 2n,- 2n X 0,(MOD 2n+1),數(shù)的機器碼表示定點數(shù)的表示法(補碼),實例:X1 = 0.10110 -0.

13、10110 0.0000 X 補 = 0.10110 1.01010 0.0000 實例:X1 = 10110 -10110 0000 X 補 = 010110 101010 00000,數(shù)的機器碼表示定點數(shù)的表示法(補碼),由于正數(shù)的補碼就是正數(shù)本身,故著重講解負數(shù)求補碼的方法。,負數(shù)求補碼,數(shù)的機器碼表示定點數(shù)的表示法(補碼),(1)由定義求 例:,X補=2+X,=10+(-0.1101001),=1.0010111,數(shù)的機器碼表示定點數(shù)的表示法(補碼),例: X=- 1101001 解:,X補=28+X,=100000000+(-1101001),=10010111,反過來,由補碼求真值

14、,只要將公式進行交換即可。,數(shù)的機器碼表示定點數(shù)的表示法(補碼),(2)由原碼求補碼 除符號位以外,其余各位求反,末位加1。 例:X= - 0.0101011 解:,X原= 1 . 0 1 0 1 0 1 1,X補=,1.,1,1,1,0,0,0,0,+,0. 0 0 0 0 0 0 1,1. 1 0 1 0 1 0 1,由補碼求原碼,此規(guī)則同樣適用。,(3)由原碼求補碼的簡便原則: 除符號位以外,其余各位按位取反,從最低位開始遇到的第一個“1”以前的各位保持不變。,例:X原= 1 1 0 1 1 0 1 0 0,X補=,1 0 1 0 0 1,1 0 0,1 0 0,由-X補求X補,此規(guī)則同

15、樣適用。,數(shù)的機器碼表示定點數(shù)的表示法(補碼),(3)由X補求-X補:連符號位一起各位求反,末位加1。 例:X補=1.1010101 解:,X補= 1 1 0 1 0 1 0 1,-X補=,0,0,0,0,1,1,1,0,+,1,0 0 1 0 1 0 1 1,數(shù)的機器碼表示定點數(shù)的表示法(補碼),(4) 由X補求1/2X補:將X補的符號位和數(shù)值位一起向右移動一次。符號位移走后保持原來的值不變。 例:,X補=,1,0,0,1,1,0,0,0,X/2補=,1,0,1,0,1,0,0,0,1,這稱為“算術(shù)移位”,你會求X/4補和X/8補嗎?,數(shù)的機器碼表示定點數(shù)的表示法(補碼),性質(zhì): 0的補碼是

16、唯一的 補碼便于加減運算 n+1位補碼所能表示的數(shù): 小數(shù):MAX=1-2-n ,MIN=1 整數(shù):MAX= 2n-1, MIN= 2n,數(shù)的機器碼表示定點數(shù)的表示法(反碼),定點小數(shù)表示: Ns. N1 N2 Nn 定義: X 反 = 定點整數(shù)表示:Ns N1 N2 Nn 定義: X 反 =,X,(2-2-n )+ X,0 X 1,-1 X 0,X,( 2n+1 1)+ X,0 X 2n,- 2n X 0,數(shù)的機器碼表示定點數(shù)的表示法(反碼),由原碼求反碼,如果X為正數(shù),則X反=X原;如果X為負數(shù),則將X原除符號位以外,每位都變反,可得到X反。 實例:X = +0.10110 -0.1011

17、0 +0.0000 X 反 = 0.10110 1.01001 0.0000 -0.0000反 1.11111 實例:X1 = +10110 -10110 +0000 X 反= 0 10110 101001 00000 -0000反 11111,對于反碼有 +0和-0之分,例5 : x=+122,y122,求x和y的原碼、反碼和補碼 解:。,定點數(shù)(移碼)的表示法,對于n+1位數(shù)Ns N1 N2 Nn 定義: X 移 =2n+X 由于移碼是在原值X上加一個2n,所以也稱為增碼,因此,符號為1時,表示正數(shù),符號為0時,表示負數(shù)。 X=+1101010,X移=27+X =11101010,-2n

18、X 2n,數(shù)的機器碼表示定點數(shù)的表示法(移碼),由X補求X移:只要將X補的符號位求反,就可得到X移。 性質(zhì): 若X1移X2移,則有 X1X2,例6以定點整數(shù)為例,用數(shù)軸形式說明原碼、反碼、補碼表示范圍和可能的數(shù)碼組合情況。,解:,思考:為什么補碼表示負數(shù)時,范圍可到-2n?,設(shè)n=8則:,原碼:,正數(shù):,0000 0000(+0),0111 1111(+127),共128個,負數(shù):,1000 0000(-0),1111 1111(-127),共128個,共256個, 一個字節(jié)8位(即n=8), 共能表示256個數(shù),即:-127127,反碼:,正數(shù):,0000 0000(+0),0111 1111(+127),共128個,負數(shù):,1111 1111(-0),1000 0000(-127),共128個,共256個, 一個字節(jié)8位

溫馨提示

  • 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

提交評論