新編計算機(jī)組成原理習(xí)題與解析_第1頁
新編計算機(jī)組成原理習(xí)題與解析_第2頁
新編計算機(jī)組成原理習(xí)題與解析_第3頁
新編計算機(jī)組成原理習(xí)題與解析_第4頁
新編計算機(jī)組成原理習(xí)題與解析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

新編計算機(jī)組成原理習(xí)題與解析1、單項選擇題【例1】在浮點(diǎn)數(shù)運(yùn)算中溢出得條件就是

。A、階碼最高位有進(jìn)位B、結(jié)果尾數(shù)溢出C、階碼溢出D、尾數(shù)規(guī)格化后階碼溢出解:在浮點(diǎn)數(shù)運(yùn)算中,只有尾數(shù)規(guī)格化后階碼溢出,才表示運(yùn)算結(jié)果溢出。本題答案為D?!纠?】在浮點(diǎn)數(shù)運(yùn)算中,下溢出指得就是

。A、運(yùn)算結(jié)果得絕對值小于機(jī)器所能表示得最小絕對值B、運(yùn)算得結(jié)果小于機(jī)器所能表示得最小負(fù)數(shù)C、運(yùn)算得結(jié)果小于機(jī)器所能表示得最小正數(shù)D、運(yùn)算結(jié)果得最低有效位產(chǎn)生得錯誤解:在浮點(diǎn)數(shù)運(yùn)算中,下溢出指得就是運(yùn)算得結(jié)果小于機(jī)器所能表示得最小負(fù)數(shù),主要表現(xiàn)就是規(guī)格化后階碼小于其能表示得最小負(fù)數(shù)。本題答案為B。【例3】浮點(diǎn)加減中得對階就是指

。A、將較小得一個階碼調(diào)整到與較大得一個階碼相同B、將較大得一個階碼調(diào)整到與較小得一個階碼相同C、將被加數(shù)得階碼調(diào)整到與加數(shù)得階碼相同D、將加數(shù)得階碼調(diào)整到與被加數(shù)得階碼相同解:浮點(diǎn)加減中得對階就是將較小得一個階碼調(diào)整到與較大得一個階碼相同。本題答案為A.【例4】兩個浮點(diǎn)數(shù)相加,階碼用原碼表示,一個數(shù)得階碼為7,另一個數(shù)得階碼為10,則需要將階碼較小得浮點(diǎn)數(shù)得小數(shù)點(diǎn)

。A、左移2位

B、左移3位

C、右移2位

D、右移3位解:在對階時總就是讓小階碼向大階碼瞧齊,這里將小階碼變?yōu)?0,對應(yīng)得尾數(shù)相應(yīng)減小,即將小階碼得尾數(shù)右移3位,相當(dāng)于它得小數(shù)點(diǎn)左移3位。本題答案為B?!纠怠績蓚€浮點(diǎn)數(shù)相加,階碼為5位(含1位符號位),階碼用二進(jìn)制移碼表示,x得階碼為11010(10),y得階碼為11000(8),則需要將階碼較小得浮點(diǎn)數(shù)得尾數(shù)

。A、左移2位

B、左移3位

C、右移2位

D、右移3位解:x得階碼為11010,即x=01010,對應(yīng)十進(jìn)制數(shù)10,y得階碼為11000,即y=01000,對應(yīng)十進(jìn)制數(shù)8,兩者相差2,所以需要將階碼較小得浮點(diǎn)數(shù)y得尾數(shù)右移2位。本題答案為C.也可以這樣來求解,因為[x]移=11010,[y]移=11000,所以有[x—y]移=[x]移—[y]移+2n=11010—11000+10000=10010+10000=10010,則x—y=00010,為十進(jìn)制數(shù)2?!纠?】若浮點(diǎn)數(shù)采用補(bǔ)碼表示,判斷加/減運(yùn)算得結(jié)果就是否為規(guī)格化數(shù)得方法就是

.A、階符與數(shù)符相同

B、階符與數(shù)符相異C、數(shù)符與尾數(shù)最高位相同

D、數(shù)符與尾數(shù)最高位相異解:一個浮點(diǎn)數(shù)用二進(jìn)制補(bǔ)碼表示,若符號位與尾數(shù)最高位相異,則該數(shù)就是規(guī)格化表示。本題答案為D。2、填空題【例7】在浮點(diǎn)加減法運(yùn)算中,當(dāng)運(yùn)算結(jié)果得尾數(shù)得絕對值大于1時,需要對結(jié)果進(jìn)行

①,其操作就是

。解:本題答案就是:①向右規(guī)格化②尾數(shù)右移一位,右邊補(bǔ)一個0,階碼減1,直到尾數(shù)絕對值≥0、5?!纠浮吭O(shè)兩個浮點(diǎn)數(shù)為x=201×0、1101,y=211×(-0、1010)。假設(shè)尾數(shù)在計算機(jī)中以補(bǔ)碼表示(4位尾數(shù),另有2位符號位),階碼(2位階碼)以原碼表示(另有2位階符位),求x+y得結(jié)果就是

。解:將x、y轉(zhuǎn)換成浮點(diǎn)數(shù)據(jù)格式,[x]?。?001,00、1101,[y]浮=0011,11、0110,相加運(yùn)算得步驟如下.

對階:求得階差為11-01=10,即2,因此將x得尾數(shù)右移兩位,得[x]浮=0011,00、001101。

對尾數(shù)求與,得[x+y]?。?011,11、100101.

規(guī)格化:由于符號位與第一位數(shù)相等,不就是規(guī)格化數(shù),故向左規(guī)格化,得[x+y]浮=0010,11、001010。

舍入:采用0舍1入法,得[x+y]浮=0010,11、0011.

判溢:數(shù)據(jù)無溢出,因此結(jié)果為x+y=2010×(-0、1101).本題答案為:2010×(-0、1101)。3、問答題【例9】什么就是浮點(diǎn)數(shù)得溢出?什么情況下會發(fā)生上溢出?什么情況下會發(fā)生下溢出?解:浮點(diǎn)數(shù)得運(yùn)算結(jié)果可能出現(xiàn)以下幾種情況。l

階碼上溢出:當(dāng)一個正指數(shù)超過了最大允許值,此時,浮點(diǎn)數(shù)發(fā)生上溢出(即向∞方向溢出)。如果結(jié)果就是正數(shù),則發(fā)生正上溢出(有得機(jī)器把值置為+∞);如果就是負(fù)數(shù),則發(fā)生負(fù)上溢出(有得機(jī)器把值置為-∞).這種情況為軟件故障,通常要引入溢出故障處理程序來處理.l

階碼下溢出:當(dāng)一個負(fù)指數(shù)比最小允許值還小,此時,浮點(diǎn)數(shù)發(fā)生下溢出。一般機(jī)器把下溢出時得值置為0(+0或—0)。l

尾數(shù)溢出:當(dāng)尾數(shù)最高有效位有進(jìn)位時,發(fā)生尾數(shù)溢出.此時,進(jìn)行“右規(guī)”操作:尾數(shù)右移一位,階碼加1,直到尾數(shù)不溢出為止.此時,只要階碼不發(fā)生上溢出,則浮點(diǎn)數(shù)不會溢出.l

非規(guī)格化尾數(shù):當(dāng)數(shù)值部分高位出現(xiàn)0時,尾數(shù)為非規(guī)格化形式。此時,進(jìn)行“左規(guī)"操作,即尾數(shù)左移一位,階碼減1,直到尾數(shù)為規(guī)格化形式為止。【例10】已知兩個實(shí)數(shù)x=-68,y=—8、25,它們在C語言中定義為float(yī)型變量,分別存放在寄存器A與B中。另外,還有兩個寄存器C與D。A、B、C、D都就是32位得寄存器。請回答下列問題(要求用十六進(jìn)制表示二進(jìn)制序列):(1)寄存器A與B中得內(nèi)容分別就是什么?(2)x與y相加后得結(jié)果存放在C寄存器中,寄存器C中得內(nèi)容就是什么?(3)x與y相減后得結(jié)果存放在D寄存器中,寄存器D中得內(nèi)容就是什么?解:(1)在計算機(jī)中,float型得變量都被表示成IEEE754單精度格式。x=—68=-(1000100)2=—1、0001×26,符號位為1,階碼為127+6=128+5=(10000101)2,尾數(shù)為1、0001,所以小數(shù)部分為:00010000000000000000000,合起來后整個浮點(diǎn)數(shù)表示為:11000010100010000000000000000000,寫成十六進(jìn)制為:C2880000H。y=—8、25=-(1000、01)2=-1、00001×23,符號位為1,階碼為127+3=128+2=(10000010)2,尾數(shù)為1、00001,所以小數(shù)部分為:00001000000000000000000,合起來后整個浮點(diǎn)數(shù)表示為:11000001000001000000000000000000,寫成十六進(jìn)制為C1040000H。因此,寄存器A與B中得內(nèi)容分別就是C2880000H、C1040000H.(2)兩個浮點(diǎn)數(shù)相加得步驟如下。

對階:Ex=10000101,Ey=10000010,則[Ex—Ey]補(bǔ)=[Ex]補(bǔ)+[-Ey]補(bǔ)=10000101+01111110=00000011。Ex大于Ey,所以對y進(jìn)行對階。對階后,y=—0、00100001×26.

尾數(shù)相加:x得尾數(shù)為-1、00010000000000000000000,y得尾數(shù)為-0、00100001000000000000000,用原碼加法運(yùn)算實(shí)現(xiàn),兩數(shù)符號相同,做加法,結(jié)果為-1、00110001000000000000000,即x加y得結(jié)果為—1、00110001×26,所以符號位為1,尾數(shù)為:00110001000000000000000,階碼為127+6=128+5,即:10000101.合起來為:11000010100110001000000000000000,轉(zhuǎn)換為十六進(jìn)制形式為:C2988000H。所以,寄存器C中得內(nèi)容就是C2988000H。(3)兩個浮點(diǎn)數(shù)相減得步驟同加法,對階得結(jié)果也相同,只就是尾數(shù)相減.x得尾數(shù)為-1、00010000000000000000000,y得尾數(shù)為—0、00100001000000000000000。用原碼減法運(yùn)算實(shí)現(xiàn),兩數(shù)符號相同做減法時,符號位取大數(shù)得符號,即為負(fù)數(shù),所以為1。數(shù)值部分就是大數(shù)加小數(shù)負(fù)數(shù)得補(bǔ)碼:

1、000

1000

0000

0000

0000

0000+

1、110

1111

1000

0000

0000

0000

0、111

0111

1000

0000

0000

0000x減y得結(jié)果為-0、11101111×26=-1、1101111×25,所以:符號位為1,尾數(shù)為11011110000000000000000,階碼為127+5=128+4,即10000100。合起來為:11000010011011110000000000000000,轉(zhuǎn)換為十六進(jìn)制形式為:C26F0000H,所以寄存器D中得內(nèi)容就是C26F0000H?!纠?1】兩個規(guī)格化浮點(diǎn)數(shù)求與、差,最后對結(jié)果規(guī)格化時,能否確定需要右規(guī)得次數(shù)?能否確定需要左規(guī)得次數(shù)?解:兩個n位數(shù)相加、減,其與、差最多為n+1位,因此有可能需要右規(guī),但右規(guī)最多一次.由于異號數(shù)相加,或同號數(shù)相減,其與、差得最少位數(shù)無法確定,因此左規(guī)得次數(shù)也無法確定,但次數(shù)最多不會超過尾數(shù)得字長,即n次?!纠?2】兩個規(guī)格化浮點(diǎn)數(shù)相乘時,就是否可能需要右規(guī)?為什么?就是否可能需要左規(guī)?若需要,能否確定左規(guī)得次數(shù)?解:規(guī)格化浮點(diǎn)數(shù)相乘時,只有當(dāng)兩個浮點(diǎn)乘數(shù)得尾數(shù)均為-1時才需要右規(guī)。因為(—1)×(—1)=1,—1為規(guī)格化數(shù),而+1不就是,所以需要右規(guī),使尾數(shù)成為+1/2。規(guī)格化浮點(diǎn)數(shù)相乘時需要左規(guī)。規(guī)格化尾數(shù)得范圍為:1/2≤|M|≤1,其積得范圍為:1/4≤|積|<1,因此最多左規(guī)一次?!纠?3】兩個規(guī)格化浮點(diǎn)數(shù)相除,就是否可能需要左規(guī)?為什么?就是否可能需要右規(guī)?若需要,能否確定右規(guī)得次數(shù)?解:規(guī)格化浮點(diǎn)數(shù)相除時,只有一種情況需要左規(guī),即當(dāng)被除數(shù)得尾數(shù)為1/2、除數(shù)得尾數(shù)為—1時,需要左規(guī).因為(1/2)/(-1)=-1/2,1/2與—1均為規(guī)格化數(shù),而-1/2不就是,所以需要左規(guī)一次,使尾數(shù)成為-1。規(guī)格化浮點(diǎn)數(shù)相除時,被除數(shù)、除數(shù)均為規(guī)格化數(shù),規(guī)格化尾數(shù)得范圍均為:1/2≤|M|≤1,所以商得絕對值范圍為:1/2≤|商|〈2.因此需要右規(guī),但最多右規(guī)一次?!纠?】設(shè)階碼為5位(包括2位階符),尾數(shù)為8位(包括2位數(shù)符),階碼、尾數(shù)均用補(bǔ)碼表示,請完成下列取值得[x+y]、[x—y]運(yùn)算:(1)x=2—011×0、100101,y=2—010×(—0、011110)(2)x=2-101×(-0、010110),y=2-100×0、010110解:(1)將y規(guī)格化后得:y=2-011×(—0、111100),[x]浮=1101,00、100101,[y]浮=1101,11、000100,[-y]浮=1101,00、111100。①對階[ΔE]補(bǔ)=[Ex]補(bǔ)+[-Ey]補(bǔ)=1101+0011=0000,所以Ex=Ey。②尾數(shù)相加

相加

相減

00、100101

00、100101+

11、000100

+

00、111100

11、101001

01、100001[x+y]浮=1101,11、101001,左規(guī)后[x+y]浮=1100,11、010010,所以x+y=2—100×(—0、101110).[x—y]浮=1101,01、100001,右規(guī)后[x—y]浮=1110,00、1100001,舍入處理得[x—y]浮=1110,00、110001,所以x—y=2—110×0、110001.(2)[x]浮=1011,11、101010,[y]?。剑?00,00、010110,[-y]浮=1100,11、101010。①對階[ΔE]補(bǔ)=[Ex]補(bǔ)+[—Ey]補(bǔ)=1011+0100=1111,所以△E=—1,[x]浮=1100,11、110101(0)。②尾數(shù)相加

相加

相減

11、110101(0)

11、110101(0)+

00、010110

11、101010

00、001011(0)

11、011111(0)[x+y]?。?100,00、001011(0),左規(guī)后[x+y]浮=1110,00、1011000,所以x+y=2-110×0、1011B。[x-y]浮=1100,11、011111(0),所以x—y=2-100×(-0、100001B)?!纠?5】已知兩個浮點(diǎn)數(shù):A=(-0、010011)×2-010,B=(+0、110111)×2+001.假定階碼與尾數(shù)都用補(bǔ)碼表示,階碼4位(含1位符號位),尾數(shù)7位(含1位符號位).試按規(guī)格化補(bǔ)碼加法規(guī)則與步驟,采用0舍1入法,求[A+B]補(bǔ)就是多少?解:求[A+B]補(bǔ)得步驟如下。①求運(yùn)算中所需得數(shù)據(jù)[A]補(bǔ)=([EA]補(bǔ),[MA]補(bǔ))=(1、110,1、101101)。[B]補(bǔ)=([EB]補(bǔ),[MB]補(bǔ))=(0、001,0、110111)。[-EB]補(bǔ)=1、111。②求階差[△E]補(bǔ)=[EA]補(bǔ)—[EB]補(bǔ)=[EA]補(bǔ)+[-EB]補(bǔ)=1、110+1、111=1、101。③對階[A]補(bǔ)變?yōu)椋跘']補(bǔ),[A']補(bǔ)=([E’A]補(bǔ),[M'A]補(bǔ))=(0、001,1、111101)。④尾數(shù)求與[MA]補(bǔ)+[M’B]補(bǔ)=11、111101+00、110111=00、110100。[A+B]補(bǔ)=(0、001,00、110100)。⑤規(guī)格化已就是規(guī)格化數(shù)。⑥舍入需要舍入。采用0舍1入法,所

溫馨提示

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

評論

0/150

提交評論