計(jì)算機(jī)組成原理第二章第3講數(shù)的機(jī)器碼表示.ppt_第1頁
計(jì)算機(jī)組成原理第二章第3講數(shù)的機(jī)器碼表示.ppt_第2頁
計(jì)算機(jī)組成原理第二章第3講數(shù)的機(jī)器碼表示.ppt_第3頁
計(jì)算機(jī)組成原理第二章第3講數(shù)的機(jī)器碼表示.ppt_第4頁
計(jì)算機(jī)組成原理第二章第3講數(shù)的機(jī)器碼表示.ppt_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)的機(jī)器碼表示,2.1.2數(shù)的機(jī)器碼表示,一、數(shù)的機(jī)器碼表示 真值:數(shù)值數(shù)據(jù)的實(shí)際值 如:-33,1011B,257 等 機(jī)器碼:數(shù)值數(shù)據(jù)在計(jì)算機(jī)內(nèi)的編碼表示 機(jī)器碼的種類: 原碼 反碼 補(bǔ)碼 移碼 為什么要提出機(jī)器碼? 要解決在計(jì)算機(jī)內(nèi)部數(shù)的正、負(fù)符號(hào)和小數(shù)點(diǎn)運(yùn)算問題。,2.1.2數(shù)的機(jī)器碼表示,具體地: 在計(jì)算機(jī)中對(duì)數(shù)據(jù)進(jìn)行運(yùn)算操作時(shí),符號(hào)位的表示,符號(hào)位是否也同數(shù)值位一道參加運(yùn)算? 如何參加運(yùn)算? 為了妥善的處理好這些問題,就需要把符號(hào)位和數(shù)字位一起編碼表示數(shù)據(jù),為適應(yīng)不同的處理要求,產(chǎn)生了多種數(shù)據(jù)編碼方法,如原碼、補(bǔ)碼、反碼、移碼等。,2.1.2數(shù)的機(jī)器碼表示,原碼、補(bǔ)碼、反碼的共性:

2、 1)這幾種編碼表示中,正數(shù)的編碼值與真值一樣,負(fù)數(shù)具有不同的編碼。 2)編碼的最高位為符號(hào)位: 0表示正 1表示負(fù),2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),1、原碼表示法 符號(hào)位:0表示正,1表示負(fù) 數(shù)值部分:與真值的二進(jìn)制形式一樣 原碼的特征: 1)零有兩種表示:0和0 +0原=0.000.0 -0原=1.000.0 2)優(yōu)點(diǎn):簡(jiǎn)單直觀,便于乘、除法運(yùn)算 缺點(diǎn):加減法運(yùn)算不便(符號(hào)不能直接參與運(yùn)算),2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),2、反碼表示法 符號(hào)位:0表示正,1表示負(fù) 數(shù)值部分:正數(shù)不變;負(fù)數(shù)反碼是將真值的各位取反得到 反碼的特征: 1)零有兩種表示:0和0 0反0.00.0 0反1

3、.11.1 2)通常用于求補(bǔ)碼,是個(gè)過渡編碼,2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),3、補(bǔ)碼表示法 符號(hào)位:0表示正,1表示負(fù) 數(shù)值部分:正數(shù)不變;負(fù)數(shù)通過求補(bǔ)得到。 補(bǔ)碼的特征: 1)零的表示唯一 2)補(bǔ)碼加減法運(yùn)算中,符號(hào)直接參與運(yùn)算 3)定點(diǎn)小數(shù)表示中,-1補(bǔ)1.000,2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),、移碼表示法 移碼通常用于表示浮點(diǎn)數(shù)的階碼。階碼是個(gè)n位的整數(shù)。 對(duì)于正數(shù),符號(hào)位為1,其余位不變 (+1110001-11110001); 對(duì)于負(fù)數(shù),符號(hào)位為0,其余位取反,最后加1 (-1110001-00001111)。 符號(hào)位:1表示正,0表示負(fù) 數(shù)值部分:與補(bǔ)碼數(shù)值部分相同,2

4、.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),例:寫出下列各真值定點(diǎn)位的原碼、反碼、補(bǔ)碼、移碼表示。 (27)10 (103)10 (0.01101)2 (23/64)10,2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),(27)10 = (+11011)2 原碼:0001 1011 反碼:0001 1011 補(bǔ)碼:0001 1011 移碼:1001 1011,2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),(103)10 = (1100111)2 原碼:1110 0111 反碼:1001 1000 補(bǔ)碼:1001 1001 移碼:0001 1001,2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),(0.

5、01101)2 原碼:1.011 0100 反碼:1.100 1011 補(bǔ)碼:1.100 1100 移碼:0.100 1100 說明:式子中的小數(shù)點(diǎn)只為人們方便查看是小數(shù)之用,實(shí)際的機(jī)器中并不會(huì)保存。,2.1.2數(shù)的機(jī)器碼表示(簡(jiǎn)化版),(23/64)10 = (0.010111)2 原碼:1.010 1110 反碼:1.101 0001 補(bǔ)碼:1.101 0010 移碼:0.101 0010,2.1.2數(shù)的機(jī)器碼表示(完整版),用公式的形式描述原碼反碼補(bǔ)碼和移碼,1、原碼表示法定點(diǎn)整數(shù),定點(diǎn)整數(shù)X0X1X2Xn(x0為符號(hào)位) x原= x 2nx0 2n-x 0 x -2n 說明: 有正0和

6、負(fù)0之分 范圍 - (2n -1) 2n 1 例: x=+11001110 n=8 x原=011001110 -x原=111001110,X為負(fù),-x相當(dāng)于加上其絕對(duì)值,1、原碼表示法定點(diǎn)小數(shù),定點(diǎn)小數(shù)x0.x1x2xn x原= x 1x0 1-x 0 x -1 有正0和負(fù)0之分 范圍-(1-2-n)1- 2-n 例: x=+0.11001110 x原= 0.11001110 -x原= 1.11001110,17,原碼表示定點(diǎn)小數(shù)的臨界值,1、原碼表示法,原碼特點(diǎn): 表示簡(jiǎn)單,易于同真值之間進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)乘除運(yùn)算規(guī)則簡(jiǎn)單。 進(jìn)行加減運(yùn)算十分麻煩。,定點(diǎn)小數(shù)表示: x0. x1 x2 xn 定義

7、: X 反 = 定點(diǎn)整數(shù)表示:x0 x1 x2 xn 定義: X 反 =,X,(2-2-n )+ X,0 X 1,-1 X 0,X,( 2n+1 1)+ X,0 X 2n,- 2n X 0,2 、反碼,2 、反碼,Eg x=+1011011 x原=01011011 用1個(gè)字節(jié)存儲(chǔ) x反=01011011 x=-1011011 x反=28-1+x =100000000-1-1011011 =10100100,3 、補(bǔ)碼,補(bǔ)碼是在“?!焙汀巴唷钡母拍钕聦?dǎo)出的。 “模”是指一個(gè)計(jì)量系統(tǒng)的計(jì)量范圍,即產(chǎn)生“溢出”的量。 以時(shí)鐘為例,如下頁圖: 5-2=3, 5+10=3 -2和10同余,以12為模

8、時(shí)鐘定位在12點(diǎn),向后退2個(gè)小時(shí)和向前撥10個(gè)小時(shí)得到的效果是相同的,3 、補(bǔ)碼,現(xiàn)在是北京時(shí)間3點(diǎn)整,而時(shí)鐘卻指向5點(diǎn)。 5-2=3 5+10=3 (5+10=15,15-12=3, 12自動(dòng)丟失。12就是模),3 、補(bǔ)碼,繼續(xù)推導(dǎo): 5-2=5+10 (MOD 12) 5+(-2)=5+10 (MOD 12) -2=10 (MOD 12) 結(jié)論: 可以說:在模為12的情況下,-2的補(bǔ)碼 就是10。 一個(gè)負(fù)數(shù)用其補(bǔ)碼代替,同樣可以得到正確的運(yùn)算結(jié)果。 借用補(bǔ)碼機(jī)制,可在計(jì)算機(jī)運(yùn)算中將減法轉(zhuǎn)換為加法運(yùn)算。,3 、補(bǔ)碼,具體地, 在計(jì)算機(jī)中,機(jī)器能表示的數(shù)據(jù)位數(shù)是一定的,其運(yùn)算都是有模運(yùn)算。如果

9、是n位整數(shù),其模為2n+1。如果是n位小數(shù),其模為2。 若運(yùn)算結(jié)果超出了計(jì)算機(jī)所能表示的數(shù)值范圍,則只保留它的小于模的低n位的數(shù)值,超過n位的高位部分就自動(dòng)舍棄了。,3 、補(bǔ)碼,定義:正數(shù)的補(bǔ)碼就是正數(shù)的本身,負(fù)數(shù)的補(bǔ)碼是原負(fù)數(shù)加上模。 計(jì)算機(jī)運(yùn)算受字長(zhǎng)限制,屬于有模運(yùn)算.,3 、補(bǔ)碼,定點(diǎn)整數(shù) 定點(diǎn)整數(shù)x0 x1x2.xn以2n+1為模 x補(bǔ)= x 2n x0 2n+1+x 0 x- 2n 示數(shù)范圍:- 2n 2n - 1,3 、補(bǔ)碼,定點(diǎn)小數(shù) 定點(diǎn)小數(shù)x0.x1x2.xn,以2為模 x補(bǔ)= x 1x0 2+x 0 x -1 示數(shù)范圍:-11-2-n,3 、補(bǔ)碼,例:x X補(bǔ)=28+X =1

10、00000000 + (-1101001) =10010111 x X補(bǔ)=2+X =10+(-0.1101001) =1.0010111,3 、補(bǔ)碼,例: x= -0.1011 x補(bǔ)=10+x =10.0000-0.1011 =1.0101 y=-0.01111 y補(bǔ)=10+y =10.00000-0.01111 =1.10001,3 、補(bǔ)碼,思考: 如何通過補(bǔ)碼求原碼? 例如上題例子。,由補(bǔ)碼求原碼,依照用原碼求補(bǔ)碼的方法。 規(guī)則相同!,4 、移碼,常用的是針對(duì)定點(diǎn)有符號(hào)整型數(shù)據(jù) x=x0 x1x2xn,移碼的定義是 移2n,2n 2n 移碼的性質(zhì): 最高位為符號(hào)位。 0有唯一編碼。 保持了

11、數(shù)據(jù)原有的大小順序。 移碼只用于浮點(diǎn)數(shù)的階碼部分,故一般只用于表示整數(shù)。,4 、移碼,若一定要表示小數(shù): x=x0.x1x2xn,移碼的定義是 移1,(1-2-n ) 1-2-n,4 、移碼,eg. X=+000 0111 (1個(gè)字節(jié)存儲(chǔ)) x移=27+0000111 =10000000 + 0000111 =1000 0111 X=-100 0111 x移=27-100 0111 = 1000 0000 100 0111 =0011 1001,機(jī)器碼表示練習(xí)題,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x1原0.0110101x2原10000101 x3反1.1010101 x4反0.000010

12、1 x5補(bǔ)1.0010101 x6補(bǔ)0.1000101 x7補(bǔ)1.0000000 x8補(bǔ)100000000 x9補(bǔ)00000001 x10補(bǔ)10110011 x11移1.0010101 x12移0.0000101,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x1原0.0110101x2原10000101 解: x1=0.0110101 x2=-101,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x3反1.1010101 x4反0.0000101 解: X3= -0.0101010 X4= 0.0000101,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x5補(bǔ)1.0010101 x6補(bǔ)0.1000101 解: x5=

13、-0.1101011 x6= 0.1000101,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x7補(bǔ)1.0000000 x8補(bǔ)10000000 解: x7= -1 X8= -128,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x9補(bǔ)00000001 x10補(bǔ)10110011 解: x9= 1 x10= -1001101,例:寫出下列定點(diǎn)8位機(jī)器碼的真值。 x11移1.0010101 x12移0.0000101 解: x11= 0.0010101 x12= -0.1111011,2.1.2數(shù)的機(jī)器碼表示,【例2.7】將十進(jìn)制真值(127,1,0,1,127)列表表示成二進(jìn)制數(shù)及原碼、反碼、補(bǔ)碼、移碼值。,補(bǔ)碼形

14、式的八位二進(jìn)制數(shù)的示數(shù)范圍討論: 符號(hào)位1位,數(shù)值位7位 即-27 27-1 -128127 -128怎樣表示?,2.1.2數(shù)的機(jī)器碼表示,到底為什么這么折騰?非要搞個(gè)補(bǔ)碼出來? 補(bǔ)碼的設(shè)計(jì)目的是: 使符號(hào)位能與有效值部分一起參加運(yùn)算,從而簡(jiǎn)化運(yùn)算規(guī)則。 使減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,進(jìn)一步簡(jiǎn)化計(jì)算機(jī)中運(yùn)算器的線路設(shè)計(jì)。 消除正零負(fù)零干擾,最大負(fù)數(shù)向外拓展1位。 所有這些轉(zhuǎn)換都是在計(jì)算機(jī)的最底層進(jìn)行的。,2.1.2數(shù)的機(jī)器碼表示,舉例:一個(gè)字節(jié)內(nèi)的加減運(yùn)算 若直接用原碼: 0000 0001 + 1000 0010 = 1000 0011 1 + (-2) = -3 用補(bǔ)碼: 0000 0001

15、+ 1111 1110 = 1111 1111 1 + (-2) = -1,2.1.2數(shù)的機(jī)器碼表示,【例2.6】以定點(diǎn)整數(shù)為例,用數(shù)軸形式說明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。,2.1.2數(shù)的機(jī)器碼表示,【例8】設(shè)機(jī)器字長(zhǎng)16位,定點(diǎn)表示,尾數(shù)15位,數(shù)符1位,問: (1)定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少? (2)定點(diǎn)原碼小數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少? 如果均改用補(bǔ)碼,是何情況?,2.1.2數(shù)的機(jī)器碼表示,解答: (1)定點(diǎn)原碼整數(shù)表示 最大正數(shù)值(2151)10(32767)10 最小負(fù)數(shù)值(2151)10(32767)10 (2)定點(diǎn)原碼小數(shù)表

16、示 最大正數(shù)值(1215)10 (0.111.11)2 最小負(fù)數(shù)值(1215)10 (0.111.11)2,2.1.2數(shù)的機(jī)器碼表示,(3):改為補(bǔ)碼: 最大正 最小負(fù) 定點(diǎn)整數(shù): 215-1 -215 32767 -32768 定點(diǎn)小數(shù): 1-2-15 -1,2.1.2數(shù)的機(jī)器碼表示,回想:C語言中的幾個(gè)變量定義 short:半個(gè)機(jī)器字長(zhǎng),16位: -3276832767 int:一個(gè)機(jī)器字長(zhǎng),32位: -21474836482147483647 long:兩個(gè)機(jī)器字長(zhǎng),64位 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 (對(duì)于32位機(jī)),2.1.2數(shù)的機(jī)器碼表示,【例9】假設(shè)由S,E,M三個(gè)域組成的一個(gè)32位二進(jìn)制字所表示的非零規(guī)格化浮點(diǎn)數(shù),真值表示為(非IEEE754標(biāo)準(zhǔn)):(1)s (1.M) 2E128問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少?,移碼,原碼,2.1.2數(shù)的機(jī)器碼表示,1個(gè)字節(jié) 真值最大的補(bǔ)碼: 0111 1111 最小的補(bǔ)碼: 1 000 0000 1個(gè)字節(jié) 真值最大的移碼: 1 111 1111 最小的移碼 0 000 0000,2.1.2數(shù)的機(jī)器碼表示,回顧: 對(duì)于1個(gè)字節(jié)空間 整數(shù)移碼的計(jì)算方法: x移=27+x E=1000 0000

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論