《計(jì)算機(jī)組成原理》課件第二章數(shù)據(jù)的表示-2.2.2_第1頁(yè)
《計(jì)算機(jī)組成原理》課件第二章數(shù)據(jù)的表示-2.2.2_第2頁(yè)
《計(jì)算機(jī)組成原理》課件第二章數(shù)據(jù)的表示-2.2.2_第3頁(yè)
《計(jì)算機(jī)組成原理》課件第二章數(shù)據(jù)的表示-2.2.2_第4頁(yè)
《計(jì)算機(jī)組成原理》課件第二章數(shù)據(jù)的表示-2.2.2_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章數(shù)據(jù)的表示2.2.2機(jī)器數(shù)編碼2.2.2機(jī)器數(shù)編碼表示計(jì)算機(jī)內(nèi)是用具有兩個(gè)不同穩(wěn)定狀態(tài)的元件來(lái)表示數(shù)據(jù)的,數(shù)據(jù)在計(jì)算機(jī)中的表示形式稱(chēng)為機(jī)器數(shù)。一個(gè)機(jī)器數(shù)所代表的實(shí)際數(shù)值稱(chēng)為真值。例如,規(guī)定開(kāi)關(guān)閉合為1,斷開(kāi)為0。一個(gè)二進(jìn)制數(shù)就可以用一排開(kāi)關(guān)表示出來(lái)。下面圖中開(kāi)關(guān)的狀態(tài)組合就表示一個(gè)二進(jìn)制數(shù)101101,為了方便描述,我們用圖2-7的形式來(lái)表示機(jī)器數(shù)。2.2.2機(jī)器數(shù)編碼表示數(shù)值數(shù)據(jù)表示在電子元件上,需要解決符號(hào)的表示問(wèn)題、小數(shù)點(diǎn)的表示問(wèn)題,還要考慮數(shù)據(jù)位的編碼問(wèn)題和運(yùn)算方法,便于計(jì)算機(jī)內(nèi)表示的數(shù)據(jù)運(yùn)算。下面分別解決無(wú)符號(hào)整數(shù)、帶符號(hào)整數(shù)、帶符號(hào)純小數(shù)、實(shí)數(shù)在機(jī)器中的表示方法。因?yàn)橛?jì)算機(jī)內(nèi)部存儲(chǔ)、運(yùn)算和傳送數(shù)據(jù)的部件位數(shù)是有限的,所以不管采用哪種表示法,都只能表示一定范圍內(nèi)的有限個(gè)數(shù)。如果一個(gè)數(shù)超出了表示的范圍,稱(chēng)為“溢出”。所以研究表示方法時(shí),還要研究這種表示方法的數(shù)值表示范圍。1無(wú)符號(hào)整數(shù)的表示無(wú)符號(hào)整數(shù)的每一位都是數(shù)值位,只能表示正數(shù)和零。計(jì)算機(jī)中表示無(wú)符號(hào)整數(shù)就直接用這個(gè)數(shù)的二進(jìn)制表示作為數(shù)據(jù)的編碼(機(jī)器數(shù))。[例2-13]在8位寄存器中表示數(shù)據(jù)5。解:5D=00000101B1無(wú)符號(hào)整數(shù)的表示計(jì)算機(jī)中能并行傳送的最大二進(jìn)制數(shù)位數(shù)稱(chēng)為字長(zhǎng),這是由計(jì)算機(jī)的硬件長(zhǎng)度決定的。因?yàn)橛?jì)算機(jī)字長(zhǎng)有限,所以能夠表示的數(shù)據(jù)大小也是有一定的限制范圍的。對(duì)于一個(gè)n+1位的二進(jìn)制的定點(diǎn)整數(shù)X=X0X1X2…Xn,其中Xi=0或1,0≤i≤n。這個(gè)數(shù)代表的數(shù)值是X02n+x12n-1+…+xn-121+xn20可表示的數(shù)值范圍是0≤x≤2n+1-1。在n+1位機(jī)中,可表示的無(wú)符號(hào)數(shù)據(jù)個(gè)數(shù)是2n+1個(gè),也就是n+1個(gè)具有兩種穩(wěn)定狀態(tài)的電子元件上可能出現(xiàn)的狀態(tài)組合個(gè)數(shù)。2帶符號(hào)整數(shù)的表示數(shù)據(jù)的符號(hào)只有正、負(fù)兩種,因此也用兩個(gè)穩(wěn)定狀態(tài)的物理器件表示,一般規(guī)定0表示正號(hào),1表示負(fù)號(hào)。在數(shù)據(jù)表示時(shí),可增加1個(gè)符號(hào)位來(lái)表示正負(fù)號(hào),一般用機(jī)器數(shù)的最高位表示符號(hào)位。但是僅僅增加符號(hào)位還不夠,還要考慮數(shù)據(jù)(尤其是負(fù)數(shù))其余位的編碼方法和運(yùn)算方法,以便于數(shù)據(jù)計(jì)算。一個(gè)帶符號(hào)數(shù)的編碼方法主要有3種:原碼、補(bǔ)碼、反碼。2帶符號(hào)整數(shù)的表示(1)原碼把一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),在最高位加上符號(hào)位,就是原碼。字長(zhǎng)為n的機(jī)器中,表示一個(gè)數(shù)據(jù)X=XsX1X2X3…Xn-1,其中Xs是+、-符號(hào),其原碼的表示形式是:采用原碼編碼方式存儲(chǔ)和處理數(shù)據(jù)的機(jī)器稱(chēng)為原碼機(jī)。字長(zhǎng)為n的原碼機(jī)中能夠表示的數(shù)據(jù)范圍是-(2n-1-1)≤X≤(2n-1-1)2帶符號(hào)整數(shù)的表示(1)原碼[例2-14]

求X1=+1011010B,X2=-1011010B在8位寄存器中的原碼表示形式。解:[X1]原=[+1011010B]原=01011010 [X2]原=[-1011010B]原=11011010[例2-15]求+0和-0在8位原碼機(jī)中的表示形式。解:[+0]原=00000000 [-0]原=100000002帶符號(hào)整數(shù)的表示(2)補(bǔ)碼計(jì)算機(jī)中一般用補(bǔ)碼實(shí)現(xiàn)加減運(yùn)算。補(bǔ)碼是根據(jù)模概念和數(shù)的互補(bǔ)關(guān)系引出的一種表示方法,這些概念我們用時(shí)鐘來(lái)說(shuō)明。在時(shí)鐘面上只有1~12個(gè)數(shù),超過(guò)12的數(shù)不再累計(jì),時(shí)鐘的模就是12。1點(diǎn)、13點(diǎn)、25點(diǎn)都是等價(jià)的1點(diǎn)。在一定數(shù)值范圍內(nèi)的運(yùn)算稱(chēng)為模運(yùn)算,用MOD表示。在模運(yùn)算系統(tǒng)中,一個(gè)數(shù)與它除以模后得到的余數(shù)是等價(jià)的。假定鐘表時(shí)針指向10點(diǎn),若順時(shí)針撥動(dòng)8格,時(shí)針指向6點(diǎn);若逆時(shí)針撥4格,時(shí)針也指向6點(diǎn)。(10+8)MOD12=610-4=6所以在模12的系統(tǒng)中,18等價(jià)于6。把4稱(chēng)為8對(duì)模12的補(bǔ)數(shù),8也稱(chēng)為4對(duì)模12的補(bǔ)數(shù)??梢钥吹皆谀_\(yùn)算中,減去一個(gè)數(shù)等于加上這個(gè)數(shù)對(duì)模的補(bǔ)數(shù)。2帶符號(hào)整數(shù)的表示(2)補(bǔ)碼計(jì)算機(jī)中用有限的二進(jìn)制位來(lái)表示數(shù)據(jù),對(duì)于字長(zhǎng)為n的計(jì)算機(jī),共能表示2n個(gè)數(shù)據(jù),運(yùn)算x+2n=xmod(2n),因此,計(jì)算機(jī)中進(jìn)行的運(yùn)算是有模運(yùn)算,模是2n。補(bǔ)碼正是按補(bǔ)數(shù)概念對(duì)數(shù)據(jù)編碼的,這樣可以用加法實(shí)現(xiàn)減法運(yùn)算。將加減法運(yùn)算統(tǒng)一起來(lái)后,就不必象原碼那樣考慮符號(hào)的異同和數(shù)值的絕對(duì)值大小問(wèn)題了。設(shè)一個(gè)字長(zhǎng)為n的帶符號(hào)數(shù)X的補(bǔ)碼定義為:[X]補(bǔ)=2n+X若X>0,則模作為超出部分被舍棄,正數(shù)的補(bǔ)碼就是其本身。若X<0,則等于模與該數(shù)絕對(duì)值之差。2帶符號(hào)整數(shù)的表示(2)補(bǔ)碼[例2-16]在4位二進(jìn)制中,求數(shù)據(jù)+5和-5的補(bǔ)碼。解:4位二進(jìn)制中,模是16。[+5]補(bǔ)=[+101B]補(bǔ)=16+5=21mod16=5=0101[-5]補(bǔ)=[-101B]補(bǔ)=16-5=11mod16=11=1011可以看到,正數(shù)的補(bǔ)碼就是該數(shù)的原碼;負(fù)數(shù)的補(bǔ)碼符號(hào)位為1,數(shù)值部分為真值按位取反后加1。這種表示方法可以用比較簡(jiǎn)單的電路實(shí)現(xiàn)。2帶符號(hào)整數(shù)的表示(2)補(bǔ)碼設(shè)一個(gè)字長(zhǎng)為n位的帶符號(hào)數(shù)X的原碼為[X]原=xsx1x2x3…xn-12帶符號(hào)整數(shù)的表示(2)補(bǔ)碼采用補(bǔ)碼編碼方式表示數(shù)據(jù)的機(jī)器稱(chēng)為補(bǔ)碼機(jī)。一個(gè)字長(zhǎng)為n位的補(bǔ)碼機(jī)中,數(shù)據(jù)的表示范圍為-2n-1≤X≤2n-1-12帶符號(hào)整數(shù)的表示[例2-17]求+0和-0在8位機(jī)中的補(bǔ)碼形式。解:[+0]補(bǔ)=00000000B[-0]補(bǔ)=10000000+1=00000000B0的補(bǔ)碼只有一種形式,就是n個(gè)0,這叫做零元素的唯一性。[例2-18]求-1在n位機(jī)中的補(bǔ)碼形式。解:[-1]補(bǔ)=2n-|-1|=2n-1=11…111(n個(gè)1)或采用變反加1法求補(bǔ)碼:[-1]補(bǔ)=1000…1+1=1111…0+1=1111…1(n個(gè)1)2帶符號(hào)整數(shù)的表示[例2-19]在一個(gè)8位寄存器中,比較分別采用原碼和補(bǔ)碼表示的數(shù)據(jù)的范圍。解:8位寄存器中,編碼的個(gè)數(shù)有28=256個(gè)。若采用原碼表示法,1位符號(hào)位,7位數(shù)據(jù)位,能夠表示的數(shù)據(jù)范圍為:-(27-1)~(27-1)即-127~127。其中負(fù)數(shù)-127~-1使用127個(gè)編碼,+0、-0使用2個(gè)編碼,+1~+127使用127個(gè)編碼。一共256個(gè)編碼。若采用補(bǔ)碼表示法,1位符號(hào)位,7位數(shù)據(jù)位,能夠表示的數(shù)據(jù)范圍為:-27~(27-1)即-128~127。其中負(fù)數(shù)-128~-1使用128個(gè)編碼,+0、-0使用1個(gè)編碼,+1~+127使用127個(gè)編碼。一共256個(gè)編碼。可以看出,原碼的表示是對(duì)稱(chēng)的,補(bǔ)碼的表示不對(duì)稱(chēng)。補(bǔ)碼比原碼的表示范圍多一個(gè)最小負(fù)數(shù)。2帶符號(hào)整數(shù)的表示(3)變形補(bǔ)碼為了判斷補(bǔ)碼數(shù)據(jù)運(yùn)算結(jié)果是否溢出,某些計(jì)算機(jī)中還采用變形補(bǔ)碼表示方式,也稱(chēng)為模4補(bǔ)碼,因?yàn)樗喈?dāng)于數(shù)據(jù)對(duì)4取模的結(jié)果。變形補(bǔ)碼也可以看作是補(bǔ)碼的符號(hào)位用2位表示正數(shù)符號(hào)位用00表示,負(fù)數(shù)符號(hào)位用11表示的。若結(jié)果出現(xiàn)符號(hào)位為01或10,則結(jié)果數(shù)據(jù)溢出。2帶符號(hào)整數(shù)的表示[例2-20]已知X=-1011B,求8位機(jī)中X的變形補(bǔ)碼。解:[X]變補(bǔ)=28+(-1011B)=100000000B-1011B=111101012帶符號(hào)整數(shù)的表示(4)反碼在補(bǔ)碼機(jī)中,負(fù)數(shù)的補(bǔ)碼是由原碼數(shù)值各位變反加1得到的,那么在數(shù)值各位變反還未加1時(shí)出現(xiàn)的編碼形式,就稱(chēng)為反碼。正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為原碼數(shù)值位逐位取反,但符號(hào)位保持不變。一個(gè)字長(zhǎng)為n位的機(jī)器中,反碼的表示范圍為-(2n-1-1)≤X≤(2n-1-1)3帶符號(hào)純小數(shù)的表示所謂定點(diǎn)數(shù),就是小數(shù)點(diǎn)位置在機(jī)器數(shù)中固定不變的數(shù)。使用定點(diǎn)數(shù)的計(jì)算機(jī)稱(chēng)為定點(diǎn)機(jī)。小數(shù)點(diǎn)在數(shù)中的位置是隱含約定的,并不占位空間。小數(shù)點(diǎn)的位置可以設(shè)置在任何數(shù)位,但通常采用兩種類(lèi)型的定點(diǎn)數(shù)表示。一種是把小數(shù)點(diǎn)約定在最低位的右面,這樣機(jī)器數(shù)表示的就是定點(diǎn)整數(shù)。另一種是把小數(shù)點(diǎn)固定在符號(hào)位和最高數(shù)值位之間,即純小數(shù)表示,這樣表示的機(jī)器數(shù)稱(chēng)為定點(diǎn)小數(shù)。(1)定點(diǎn)數(shù)表示方法定點(diǎn)純整數(shù)的格式如圖2-9。

定點(diǎn)純小數(shù)的格式如圖2-10。

對(duì)于純小數(shù)來(lái)說(shuō),數(shù)值位部分只表示小數(shù)點(diǎn)后的尾數(shù)部分,小數(shù)點(diǎn)和整數(shù)部分的0不表示。書(shū)寫(xiě)時(shí)為了表示機(jī)器數(shù)是定點(diǎn)純小數(shù),在符號(hào)位和數(shù)值位之間寫(xiě)一個(gè)小數(shù)點(diǎn)。定點(diǎn)數(shù)編碼為了便于運(yùn)算,定點(diǎn)數(shù)的數(shù)值位也采用原碼、補(bǔ)碼等編碼方法。定點(diǎn)小數(shù)原碼就是小數(shù)數(shù)值位的絕對(duì)值部分。定點(diǎn)純小數(shù)的模是2,所以定點(diǎn)小數(shù)X的補(bǔ)碼表示為[X]補(bǔ)=2+X。設(shè)一個(gè)字長(zhǎng)為n的帶符號(hào)小數(shù)X=Xs.X1X2…Xn-1定點(diǎn)數(shù)編碼[例2-21]求X1=+0.1011010B,X2=-0.1011010B在8位機(jī)器中的定點(diǎn)原碼表示形式。解:[X1]原=[+0.1011010B]原=0.1011010[X2]原=[-0.1011010B]原=1.1011010定點(diǎn)數(shù)編碼[例2-22]求8位機(jī)中X=-0.1011010B的補(bǔ)碼。解:(2)定點(diǎn)小數(shù)表示范圍在字長(zhǎng)n位的計(jì)算機(jī)中,定點(diǎn)原碼小數(shù)的表示范圍是-(1-2-(n-1))≤X≤(1-2-(n-1))在原碼表示中,正數(shù)和負(fù)數(shù)表示的個(gè)數(shù)一樣多,零有兩個(gè)編碼。在字長(zhǎng)n位的計(jì)算機(jī)中,定點(diǎn)補(bǔ)碼小數(shù)的表示范圍是-1≤X≤(1-2-(n-1))。在補(bǔ)碼表示中,負(fù)數(shù)比正數(shù)多表示一個(gè),零有唯一的編碼,即000…0。4實(shí)數(shù)的表示定點(diǎn)數(shù)的表示比較單一,要么純整數(shù),要么純小數(shù),而且表示數(shù)的范圍比較小,運(yùn)算過(guò)程中很容易發(fā)生溢出。在十進(jìn)制數(shù)的表示方法中,有一種科學(xué)計(jì)數(shù)法,可用來(lái)表示數(shù)值很大或很小的數(shù),也可以用來(lái)表示既有整數(shù)又有小數(shù)的數(shù),即實(shí)數(shù)。例如,123.456=0.123456*103。計(jì)算機(jī)中也引入類(lèi)似的表示方法來(lái)表示實(shí)數(shù),稱(chēng)為浮點(diǎn)數(shù)表示法,在這種表示法中,小數(shù)點(diǎn)的位置是不固定的。(1)浮點(diǎn)數(shù)表示法對(duì)任意一個(gè)二進(jìn)制數(shù)X,可以表示成X=(-1)S×M×RE。其中S為數(shù)符符號(hào)位,0表示正數(shù),1表示負(fù)數(shù),表示整個(gè)數(shù)據(jù)的正負(fù);M為尾數(shù),是一個(gè)二進(jìn)制定點(diǎn)小數(shù),可以采用原碼或補(bǔ)碼編碼方式;E為階碼,是一個(gè)二進(jìn)制定點(diǎn)整數(shù),是指數(shù)部分的編碼,代表小數(shù)點(diǎn)的位置,常用移碼或補(bǔ)碼表示;R是基數(shù),可以取值2,4,16等。一臺(tái)浮點(diǎn)機(jī)中基數(shù)是固定的,所以,基數(shù)不需要用代碼表示。計(jì)算機(jī)中典型的浮點(diǎn)數(shù)格式如下:(1)浮點(diǎn)數(shù)表示法[例2-23]設(shè)機(jī)器字長(zhǎng)10位,采用浮點(diǎn)表示法表示數(shù)據(jù),格式規(guī)定如下:1位階符,3位階碼,1位尾符,5位尾數(shù)?;鶖?shù)為2。其中階碼和尾數(shù)采用原碼編碼。寫(xiě)出數(shù)據(jù)X=-0.00011010B的機(jī)器數(shù)形式。(1)浮點(diǎn)數(shù)表示法[例2-24]設(shè)機(jī)器字長(zhǎng)10位,采用浮點(diǎn)表示法表示數(shù)據(jù),格式規(guī)定如下:1位階符,3位階碼,1位尾符,5位尾數(shù)?;鶖?shù)為2。其中階碼和尾數(shù)采用補(bǔ)碼編碼。寫(xiě)出數(shù)據(jù)X=-0.00011010B的機(jī)器數(shù)形式。(2)移碼浮點(diǎn)數(shù)的階碼一般用移碼表示,因?yàn)楦↑c(diǎn)數(shù)在進(jìn)行加減運(yùn)算時(shí),要比較兩個(gè)浮點(diǎn)數(shù)的階碼大小,為了簡(jiǎn)化比較操作,使操作過(guò)程不涉及到階的符號(hào),可以對(duì)每個(gè)階碼都加上一個(gè)正的常數(shù)(稱(chēng)為偏置常數(shù)),使所有階都轉(zhuǎn)化為正整數(shù),這就是移碼表示。對(duì)于字長(zhǎng)為n的機(jī)器,X所對(duì)應(yīng)的移碼定義為[X]移=2n-1+X(-2n-1≤X<2n-1)當(dāng)X>0時(shí),X最高位加1,符號(hào)位為1;當(dāng)X<0時(shí),2n-1減去X的絕對(duì)值,符號(hào)位為0??梢?jiàn),一個(gè)真值X的移碼和它的原碼、反碼、補(bǔ)碼的符號(hào)位正好相反。因?yàn)樽珠L(zhǎng)為n的機(jī)器中,[X]補(bǔ)=2n+X=2n-1+2n-1+X=2n-1+[X]移所以,求X數(shù)的移碼,可以簡(jiǎn)單地將補(bǔ)碼的符號(hào)位取反即可。移碼表示[例2-25]X1=+1011B,X2=-1011B,求8位機(jī)中X1和X2的移碼解:[X1]移=27+X1=10000000B+1011B=10001011[X2]移=27+X2=1000000B+[-1011B]=01110101浮點(diǎn)數(shù)表示浮點(diǎn)數(shù)的規(guī)格化浮點(diǎn)數(shù)尾數(shù)的位數(shù)表示數(shù)的有效位數(shù),有效位數(shù)越多,數(shù)據(jù)的精度就越高。為了充分利用尾數(shù)的二進(jìn)制位數(shù)來(lái)表示更多的有效位數(shù),通常采用浮點(diǎn)數(shù)的規(guī)格化形式。當(dāng)基數(shù)為2時(shí),規(guī)格化要求尾數(shù)的絕對(duì)值大于或等于1/2,并且小于或者等于1。當(dāng)尾數(shù)與符號(hào)位采用原碼編碼時(shí),尾數(shù)數(shù)值最高位應(yīng)為1;當(dāng)采用補(bǔ)碼編碼時(shí),規(guī)定尾數(shù)的最高位與符號(hào)位相反。當(dāng)不符合這種規(guī)定的數(shù)據(jù)出現(xiàn)時(shí),可以通過(guò)修改階碼并同時(shí)移動(dòng)尾數(shù)的辦法使其滿(mǎn)足規(guī)格化要求。浮點(diǎn)數(shù)的規(guī)格化規(guī)格化操作有兩種:左規(guī)和右規(guī)。若采用變形補(bǔ)碼表示尾數(shù)如果前3位為00.1或11.0,則浮點(diǎn)數(shù)就是規(guī)格化的。如果前3位是00.0或11.1,就是非規(guī)格化的,需要采用左規(guī)操作。左規(guī)是尾數(shù)每左移一位,末尾補(bǔ)0,階碼就減1。若尾符為01或10,并不表明該浮點(diǎn)數(shù)溢出,可以通過(guò)右規(guī)操作,把尾數(shù)每右移一位,符號(hào)位擴(kuò)展,階碼就加1,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論