計算機組成原理課后題答案解析_第1頁
計算機組成原理課后題答案解析_第2頁
計算機組成原理課后題答案解析_第3頁
計算機組成原理課后題答案解析_第4頁
計算機組成原理課后題答案解析_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章系統(tǒng)給概論習(xí)題一

1.1解釋以下名詞

摩爾定律:對集成電路上可容納的晶體管數(shù)目、性能和價格等開展趨勢的預(yù)測,其主要

內(nèi)容是:成集電路上可容納的晶體管數(shù)量每18個月翻一番,性能將提高一倍,而其價格

將降低一半。

主存:計算機中存放正在運行的程序和數(shù)據(jù)的存儲器,為計算機的主要工作存儲器,可隨機

存取。

控制器:計算機的指揮中心,它使計算機各部件自動協(xié)調(diào)地工作。

時鐘周期:時鐘周期是時鐘頻率的倒數(shù),也稱為節(jié)拍周期或T周期,是處理操作最根本的時

間單位。

多核處理器:多核處理器是指在一枚處理器中集成兩個或多個完整的計算引擎(內(nèi)核)。

字長:運算器一次運算處理的二進制位數(shù)。

存儲容量:存儲器中可存二進制信息的總量。

CPI:指執(zhí)行每條指令所需要的平均時鐘周期數(shù)。

MIPS:用每秒鐘執(zhí)行完成的指令數(shù)量作為衡量計算機性能的一個指標,該指標以每秒鐘完成

的百萬指令數(shù)作為單位。

CPU時間:計算某個任務(wù)時CPU實際消耗的時間,也即CPU真正花費在某程序上的時間。

計算機系統(tǒng)的層次構(gòu)造:計算機系統(tǒng)的層次構(gòu)造由多級構(gòu)成,?般分成5級,由低到高分別

是:微程序設(shè)計級,機器語言級,操作系統(tǒng)級,匯編語言級,高級語言級。

基準測試程序:把應(yīng)用程序中使用頻度最高的那那些核心程序作為評價計算機性能的標準程

序。

軟/硬件功能的等價性:從邏輯功能的角度來看,硬件和軟件在完成某項功能上是一樣的,

稱為軟/硬件功能是等價的,如浮點運算既可以由軟件實現(xiàn),也可以由專門的硬件實現(xiàn),

固件:是一種軟件的固化,其目的是為了加快軟件的執(zhí)行速度。

可靠性:可靠性是指系統(tǒng)或產(chǎn)品在規(guī)定的條件和規(guī)定的時間內(nèi),完成規(guī)定功能的能力。產(chǎn)

品可靠性定義的要素是三個''規(guī)定〃:''規(guī)定條件〃、''規(guī)定時間〃和''規(guī)定功能〃。

MTTF:平均無故障時間,指系統(tǒng)自使用以來到第一次出故障的時間間隔的期望值。

MTTR:系統(tǒng)的平均修復(fù)時間。

MTBF:平均故障間隔時間,指相鄰兩次故障之間的平均工作時間。

可用性:指系統(tǒng)在任意時刻可使用的概率,可根據(jù)MTTF、MTTR和MTBF等指標計算處系統(tǒng)的

可用性。

1.2什么是計算機系統(tǒng)的硬件和軟件?為什么說計算機系統(tǒng)的硬件和軟件在邏輯功能上是

等價的?

答:計算機硬件系統(tǒng)是指構(gòu)成計算機系統(tǒng)的電子線路和電子元件等物理設(shè)備的總稱。硬件是

構(gòu)成計算機的物質(zhì)根底,是計算機系統(tǒng)的核心。計算機的硬件系統(tǒng)包含運算器、控制器、存

儲器、輸入設(shè)備和輸出設(shè)備等五大部件。

計算機軟件是計算機中全部程序的集合。軟件按其功能分成應(yīng)用軟件和系統(tǒng)軟件兩大

類。

計算機硬件實現(xiàn)的往往是最根本的算術(shù)運算和邏輯運算功能,而其它功能大多是通過軟

件的擴大得以實現(xiàn)的。有許多功能可以由硬件實現(xiàn),也可以由軟件實現(xiàn),即從用戶的角度

來看它們在功能上是等價的,這一等價性被稱為軟/硬件邏輯功能的等價性。

1.3馮?諾依曼型計算機的根本思想是什么?按此思想設(shè)計的計算機硬件系統(tǒng)應(yīng)由哪些部件

組成?各起什么作用?

答:馮諾依曼型計算機的根本思想是存儲程序和程序控制,其中的“存儲程序〃是指將解題

的步驟編寫成程序,然后把存儲存放到計算機的內(nèi)存中,而“程序控制〃是指控制器讀出存

放在存儲器中的程序并根據(jù)該程序控制全機協(xié)調(diào)工作以完成程序的功能。

根據(jù)馮諾依曼型計算機的根本思想,計算機的硬件應(yīng)該由運算器、控制器、存儲器、輸

入/輸出設(shè)備和總線組成。

各部件的作用:

運算器:對數(shù)據(jù)進展運算的部件。

存儲器:存放程序和數(shù)據(jù)。

控制器:根據(jù)指令的功能控制構(gòu)成計算機的各大功能部件協(xié)調(diào)工作,共同完成指令的功

能。

輸入設(shè)備:將外部信息輸送到主機內(nèi)部的設(shè)備。

輸出設(shè)備:能將計算機內(nèi)部的信息以不同并且相應(yīng)的形式反應(yīng)給人們的設(shè)備。

總線:連接兩個或多個設(shè)備陪B件〕的公共信息通路。

1.4什么是計算機字長?它取決于什么?計算機字長統(tǒng)一了哪些部件的長度?

答:計算機的字長一般指一次參與運算數(shù)據(jù)的根本長度,用二進制數(shù)位的長度來衡量。

它取決于運算器一次運算處理的二進制位數(shù)。它是計算機的重要性能指標。常用的計算

機字長有8位、16位、32位及64位。

一般與計算機內(nèi)部存放器、加法器、數(shù)據(jù)總線的位數(shù)以及存儲器字長等長,因此,字長

直接影響硬件的代價。

1.5計算機系統(tǒng)從功能上可劃分為哪些層次?各層次在計算機系統(tǒng)中起什么作用?

答:計算機系統(tǒng)分成五級層次構(gòu)造,第1級為微程序設(shè)計級、第2級為機器語言級、第3

級為操作系統(tǒng)級、第4級為匯編語言級、第5級為高級語言級。

各層次的作用:

微程序級:為機器指令級提供機器指令的解釋指行功能。

機器指令級:是軟件系統(tǒng)和硬件系統(tǒng)的界面,一條機器指令的功能由微程序機器級的?段微

型程序的功能實現(xiàn)。

操作系統(tǒng)級:調(diào)度計算機中的軟件和硬件資源。

匯編語言級:它將用戶編寫的接近人類語言的程序,翻譯成能在機器上運行的目標程序。

高級語言級:完全面向用戶,是用戶關(guān)心的目標,可執(zhí)行各種用途的程序。

1.6計算機內(nèi)部有哪兩股信息在流動?它們彼此有什么關(guān)系?

答:計算機中有兩股信息在流動:一股是控制信息,即操作命令,它分散流向各個部件;一

股是數(shù)據(jù)信息,它受控制信息的控制,從一個部件流向另一個部件,在流動的過程被相應(yīng)的

部件加工處理。

1.7為什么說計算機系統(tǒng)的軟件與硬件可以互相轉(zhuǎn)化?

答:計算機硬件實現(xiàn)的往往是最根本的算術(shù)運算和邏輯運算功能,而其它功能大多是通過軟

件的擴大得以實現(xiàn)的。有許多功能可以由硬件實現(xiàn),也可以由軟件實現(xiàn),即從用戶的角度來

看它們在功能上是等價的,這一等價性被稱為軟/硬件邏輯功能的等價性。

由于這樣的等價性,所以可以說計算機系統(tǒng)的軟件與硬件是可以互相轉(zhuǎn)化的。

1.8什么叫軟件系統(tǒng)?它包含哪些內(nèi)容?

答:一臺計算機中全部程序的集合,統(tǒng)稱為這臺計算機的軟件系統(tǒng)。軟件按其功能分成應(yīng)用

軟件和系統(tǒng)軟件兩大類。

應(yīng)用軟件是用戶為解決某種應(yīng)用問題而編制的一些程序。

系統(tǒng)軟件用于對計算機系統(tǒng)的管理、調(diào)度、監(jiān)視和效勞等功能,常將系統(tǒng)軟件分為以

下六類:操作系統(tǒng),言處理程序,標準程序庫,效勞性程序,數(shù)據(jù)庫管理系統(tǒng)和算機網(wǎng)絡(luò)軟件。

1.9說明高級語言、匯編語言和機器語言三者之間的差異和聯(lián)系。

答:機器語言是直接用二進制代碼指令表達的計算機語言,是一種面向機器的編程語言,屬

于低級語言。

匯編語言是用助記符號來表示計算機指令的語言,也是低級的語言。

高級語言是一類接近于人類自然語言和數(shù)學(xué)語言的程序設(shè)計語言的統(tǒng)稱,分為面向過程

的語言和面向?qū)ο蟮恼Z言。

它們都是計算機的編程語言,并且是計算機編程語言開展的三個階段。三者各自的特點:

使用機器語言編寫的程序,占用內(nèi)存少、執(zhí)行效率高。缺點:編程工作量大,容易出錯;

依賴具體的計算機體系,因而程序的通用性、移植性都很差。

使用匯編語言編寫計算機程序,能夠根據(jù)特定的應(yīng)用對代碼做最正確的優(yōu)化,提高運行

速度;能夠最大限度地發(fā)揮硬件的功能。但是編寫的代碼非常難懂,不好維護;開發(fā)效率很

低,時間長且單調(diào)。

高級語言的優(yōu)點是:編程相對簡單、直觀、易理解、不容易出錯;編寫的計算機程序通

用性好,具有較好的移植性。

1.10什么是系統(tǒng)的可靠性?衡量系統(tǒng)可靠性的指標有哪些?如何提高系統(tǒng)的可靠性?

答:系統(tǒng)的可靠性是指系統(tǒng)在規(guī)定的條件和規(guī)定的時間內(nèi),完成規(guī)定功能的能力。

衡量系統(tǒng)可靠性的指標有三個:平均無故障時間、平均故障間隔時間和可用性。

提高系統(tǒng)可靠性的常用方法包括避錯和容錯。前者即防止錯誤的出現(xiàn),從而提高系統(tǒng)的

平均無故障時間;后者容許錯誤的出現(xiàn),但采取有效的方法來防止其造成的不利影響。

1.11假定某計算機1和計算機2以不同的方式實現(xiàn)了一樣的指令集,該指令集中共有A、B、

C、D四類指令,它們在程序中所占比例分別為40%、20%、20%、20%,機器1和機器2的時

鐘周期為600MHZ和800MHZ,各類指令在兩機器上的CPI如表1.5所示,求兩機器的MIPS

各為多少?

表1.5兩臺計算機不同指令的CPI

ABCD

CPU2345

CPI22234

解:CPI1=2*0.4+0.2*(3+4+5)=3.2MIPS1=f/(CPIlxlO6)=600x107(3.2xl06)=187.5

CPI2=2*0.4+0.2*(2+3+4)=2.6MIPS2=f/(CPIlxlO6)=800x107(2.6xl06)=307.7

1.12假設(shè)某程序編譯后生成的目標代碼由A、B、C、D四類指令組成,它們在程序中所占比

例分別為40%、20%、15%、25%。A、B、C、D四類指令的CPI分別為1、2、2、2?,F(xiàn)需要對

程序進展編譯優(yōu)化,優(yōu)化后的程序中A類指令條數(shù)減少了一半,而其它指令數(shù)量未發(fā)生變化。

假設(shè)運行該程序的計算機CPU主頻為500MHZ。完成以下各題:

1)優(yōu)化前后程序的CPI各為多少?

2)優(yōu)化前后程序的MIPS各為多少?

3]通過上面的計算結(jié)果你能得出什么結(jié)論?

〃IC

解:I)優(yōu)化前:CPI=£(CP/,,xW)lx0.4+2x0.2+2x0.15+2x0.25

i=1IC

=1.6

優(yōu)化后:A、B、C、D四類指令在程序中所占比例分別為1/4、1/4、3/16、5/16,

CPI=£(CP/;X-1)=lx1/4+2x1/4+2x3/16+2x5/16

/=1/C

=1.75

時鐘頻率

2]根據(jù)公式MIPS=?pix1。6得

優(yōu)化前:MIPS=(500xl06)/(1.6xl06)=312.5

優(yōu)化后:MIPS=(500xl06)/(l.75xl06)=285.7

3]優(yōu)化后,A類指令條數(shù)減少,造成計算機的CPI增加,MIPS減少。這樣的優(yōu)化雖然減少

了A類指令條數(shù),卻降低了程序的執(zhí)行速度。第二章數(shù)據(jù)表示方法習(xí)題二

2.1解釋以下名詞

真值:正號和負號分別用“+〃和"-〃表示,數(shù)據(jù)位保持二進制值不變的數(shù)據(jù)表示方法。

數(shù)值數(shù)據(jù):計算機所支持的?種數(shù)據(jù)類型,用于科學(xué)計算,常見的數(shù)值數(shù)據(jù)類型包括小數(shù)、

整數(shù)、浮點數(shù)數(shù)等。

非數(shù)值數(shù)據(jù)計算機所支持的一種數(shù)據(jù)類型,?般用來表示符號或文字等沒有數(shù)值值的數(shù)據(jù)。

機器數(shù):數(shù)據(jù)在機器中的表示形式,是正負符號數(shù)碼化后的二進制數(shù)據(jù)。

變形補碼:用兩個二進制位來表示數(shù)字的符號位,其余與補碼?樣。即“00〃表示正,“11〃

表示負。

規(guī)格化:將非規(guī)格化的數(shù)處理成規(guī)格化數(shù)的過程。規(guī)格化數(shù)規(guī)定尾數(shù)用純小數(shù)表示,且真值

表示時小數(shù)點后第一位不為0〔以機器數(shù)表示時對小數(shù)點后第一位的規(guī)定與具體的機器數(shù)的

形式有關(guān)〕。

機器零:計算機保存數(shù)字的位有限,所能表示最小的數(shù)也有范圍,其中有一個范圍之中

的數(shù)據(jù)無法準確表示,當(dāng)實際的數(shù)據(jù)處在這個無法準確表示的數(shù)據(jù)范圍時計算機就將

該數(shù)作為機器零來處理,因此,計算機中的機器零其實對應(yīng)的不是一個固定的數(shù),而

是一個數(shù)據(jù)表示范圍。

BCD碼:用4位二進制數(shù)來表示1位十進制數(shù)中的0、9這10個數(shù)碼,即二進制表示的十進

制數(shù)。

漢字內(nèi)碼:計算機內(nèi)部存儲、處理加工和傳輸漢字時所用的由0和1符號組成的代碼。

碼距:一組編碼中對應(yīng)位上數(shù)字位不同的最小個數(shù)。

奇偶校驗:通過檢測校驗碼中1的個數(shù)的奇/偶性是否改變來判斷數(shù)據(jù)是否出錯的一種數(shù)據(jù)

校驗方法。

海明校驗:是一種基于多重奇校驗且具有檢測與糾正錯誤的校驗方法。其根本原理是將有效

信息按某種規(guī)律分成假設(shè)干組,每組安排一個校驗位進展奇偶測試,就能提供多位檢錯信息,

以指出最大可能是哪位出錯,從而將其糾正。

循環(huán)冗余校驗:是數(shù)據(jù)通信領(lǐng)域中最常用的一種具有檢測與糾正錯誤能力過失校驗碼,基利

用生成多項式并基于模2運算建立編碼規(guī)那么。

檢錯:檢測被傳送的信息中是否發(fā)生過失。

糾錯:糾正信息在傳送或存儲過程中所發(fā)生的錯誤。

2.2答復(fù)以下問題

1)為什么計算機中采用二進制?

答:因為二進制具有運算簡單和表示簡單的優(yōu)點,除此之外還有可靠和容易實現(xiàn)等特點。

具體來說,是因為:

〔1〕技術(shù)實現(xiàn)簡單,計算機是由邏輯電路組成,邏輯通常只有兩個狀態(tài),開關(guān)

的接通與斷開,這兩種狀態(tài)正好可以用“1〃和“0〃表示。

〔2〕簡化運算規(guī)那么:兩個二進制數(shù)和、積運算組合各有三種,運算規(guī)那么簡單,有

于簡化計算機內(nèi)部構(gòu)造,提高運算速度。

〔3〕適合邏輯運算:邏輯代數(shù)是邏輯運算的理論依據(jù),二進制只有兩個數(shù)碼,正好

與邏輯代數(shù)中的“真〃和“假〃相吻合。

〔4〕易于進展轉(zhuǎn)換,二進制與十進制數(shù)易于互相轉(zhuǎn)換。

2)為什么計算機中采用補碼表示帶符號的整數(shù)?

答:采用補碼運算具有如下兩個特征:

[1)因為使用補碼可以將符號位和其他位統(tǒng)一處理,同時,減法也可以按加法來處理,即

如果是補碼表示的數(shù),不管是加減法都直接用加法運算即可實現(xiàn)。

[2)兩個用補碼表示的數(shù)相加時,如果最高位〔符號位〕有進位,那么進位被舍棄。

這樣的運算有兩個好處:

[a)使符號位能與有效值局部一起參加運算,從而簡化運算規(guī)那么。從而可以簡化運算器

的構(gòu)造,提高運算速度;〔減法運算可以用加法運算表示出來。〕

[b)加法運算比減法運算更易于實現(xiàn)。使減法運算轉(zhuǎn)換為加法運算,進一步簡化計算機中

運算器的線路設(shè)計。

3)浮點數(shù)的表示范圍和準確度分別由什么決定?字長一定時浮點數(shù)的表示范圍與準確度之間

有和關(guān)系?

答:浮點數(shù)的表示范圍由階碼的位數(shù)決定,準確度由尾數(shù)的位數(shù)決定。

當(dāng)機器字長一定時,分給階碼的位數(shù)越多,尾數(shù)占用的位數(shù)就越少,那么數(shù)的表示范圍

越大。而尾數(shù)占用的位數(shù)減少,必然會減少數(shù)的有效數(shù)位,即影響數(shù)的精度。

4)漢字輸人碼、機內(nèi)碼和字型碼在漢字處理過程中各有何作用?

答:漢字輸入碼、機內(nèi)碼和字型碼,分別用于漢字的輸入、漢字在計算機內(nèi)的處理以及漢字

的顯示和打印。

具體來說,計算機要對漢字信息進展處理,首先要將漢字轉(zhuǎn)換成計算機可以識別的二進

制形式并輸入到計算機,這是由漢字輸入碼完成的;漢字輸入到計算機后,還需要轉(zhuǎn)換成內(nèi)

碼才能被計算機處理,顯然,漢字內(nèi)碼也應(yīng)該是二進制形式。如果需要顯示和打印漢字,還

要將漢字的內(nèi)碼轉(zhuǎn)換成字形碼。

5)在機內(nèi)碼中如何區(qū)分兩個ASCH碼字符和一個漢字?

答:將一個漢字看成是兩個擴展ASCII碼,使表示GB2312漢字的兩個字節(jié)的最高位都為1,

而每個ASCII碼字符中每個字節(jié)的最高位為0。這樣就能區(qū)別一個機內(nèi)碼到底對應(yīng)一個漢字

還是兩個西文字符。

6)“8421碼就是二進制數(shù)"。這種說法對嗎?為什么?

答:這種說法是不對的。8421碼是一種最簡單的有權(quán)碼,它選取4位二進制數(shù)的前10個代

碼0000?1001分別對應(yīng)表示十進制數(shù)的10個數(shù)碼。假設(shè)按權(quán)求和,和數(shù)就等于該代碼所對

應(yīng)的十進制數(shù)。

8421碼是一種編碼方式,用于十進位制與二進制數(shù)之間的轉(zhuǎn)換。

而二進制數(shù)是用0和1兩個數(shù)碼來表示的數(shù)。二者是不同的概念,不能等同。

7)如何識別浮點數(shù)的正負?浮點數(shù)能表示的數(shù)值范圍和數(shù)值的準確度取決于什么?

答:當(dāng)采用一般浮點數(shù)格式表示浮點數(shù)時,階碼和尾數(shù)都各包含一位符號位。浮點數(shù)的正負

由尾數(shù)的的符號位決定。當(dāng)采用IEEE754格式時,通過數(shù)符就能判斷出浮點數(shù)的正負“

浮點數(shù)能表示的數(shù)值范圍和數(shù)值的準確度,分別取決于階碼的位數(shù)和尾數(shù)的位數(shù)。

8)簡述CRC的糾錯原理。

答:發(fā)送部件將某信息的CRC碼傳送至接收部件,接收部件收到CRC碼后,仍用約定的生成

多項式G(x)去除,假設(shè)余數(shù)為0,表示傳送正確;假設(shè)余數(shù)不為0,表示出錯,再由余數(shù)的

值來確定哪一位出錯,從而加以糾正。具體的糾錯原理如下:

(1)不管錯誤出現(xiàn)在哪一位,均要通過將出錯位循環(huán)左移到最左邊的一位上時被糾正;

〔2〕不為零余數(shù)的具有循環(huán)特性。即在余數(shù)后面補一個零除以生成多工程式,將得到

下?個余數(shù),繼續(xù)在新余數(shù)根底上補零除以生成多項式,繼續(xù)該操作,余數(shù)最后能循環(huán)到最開

場的余數(shù)。

[3]CRC就是利用不為零余數(shù)的循環(huán)特性,在循環(huán)計算余數(shù)的同時,將收到的CRC編碼

同步移動,當(dāng)余數(shù)循環(huán)到等于最左邊位出錯對應(yīng)的余數(shù)時,說明已將出錯的位移到CRC碼的

最左邊,對出錯位進展糾錯。

〔4〕繼續(xù)進展余數(shù)的循環(huán)計算,并同步移動CRC編碼,當(dāng)余數(shù)又回到最開場的值時,糾

錯后的CRC碼又回到了最開場的位置。至此,完成CRC的糾錯任務(wù)。

2.3寫出以下各數(shù)的原碼、反碼和補碼。

0,—0,0.10101,—0.10101,0.11111,-0.11111,-0.10000,0.10000

解:

x=0,那么[+0]原=0.00---0,[+0]反=0.00---0,[+0]補=0.00-0;

X=-O,那么[-0]原=1.00---0,[-0]反=1.[-0]補=0.00…0;

x=0.10101,那么[x]原=0.10101,[x]反=0.10101,[x]補=0.10101;

X=-0.10101,那么[x]原=1.10101,[x]反=1.01010,=1.01011;

x=0.11111,那么[x]原=0.11111,[x]反=0.00000,[x]補=0.00001;

X=-0.11111,那么[x]原=1.11111,[x]反=1.00000,[x]補=1.00001;

X=-O.10000,那么[x]胤=1.10000,[x]反=1.01111,[x]補=1.10000;

x=0.10000,那么Ex1原=0.10000,[x]反=0.10000,[x]補=0.10000o

2.4數(shù)的辛師馬表示形式,求數(shù)的真值。

[x]補=0.10010,[x]補=1.10010,[x]補=1.11111,

[x]補=1.00000,[x]補=0.10001,[x]補=1.00001,

解:

[x]補=0.10010,那么[x]胤=0.10010,x=0.10010;

[x]補=1.10010,那么[x]原=1.01101,X=-O.01101;

[x]補=1.11111,那么[x]胤=1.00000,x=-0;

[x]林=1.00000,那么[x]原=1.11111,X=-O.11111;

[x]補=0.10001,那么[x]原=0.10001,x=0.10001;

[x]樸=1.00001,那么[x]原=1.11110,x=-0.llllOo

2.5x=0.10110,y=-0.01010,求:

[x/2]補,[x/4]樸,[y/2]補,[2y]補

解:[x]朦=0.10110=[x](g=[x]補,

所以[x/2]補=0.010110,[x/4]補=0.0010110;

[y]原=1.01010,[y]反=1.10101,[y]補=1.10110,

所以[y/2]補=1.110110,[2y]補=1.0110o

2.6C語言中允許無符號數(shù)和有符號整數(shù)之間的轉(zhuǎn)換,下面是一段C語言代碼:

Intx=-1;

Unsignedu=2147483648;

Printf("x=%u=%d¥n〃,x,x);

PrintfC€u=%u=%d¥n/,,u,u);

給出在32位計算機中上述程序段的輸出結(jié)果并分析原因.

解:x=4294967295=-l;u=2147483648=-2147483648

原因:x是int型,在計算機中以補碼形式存在。機以無符號輸出,知輸出真值,所以

x=4294967295=-l0

U=23l是一個無符號數(shù),無溢出,由于首位為1

加符號輸出第一位為非符號位,所以是2147483648

%d第一位為符號位,所以是負數(shù),取反加1還是23i所以是-2147483648。

2.7分析以下幾種情況下所能表示的數(shù)據(jù)范圍分別是多少

1)16位無符號數(shù);

2)16位原碼定點小數(shù);

3)16位補碼定點小數(shù);

4)16位補碼定點整數(shù);

解:

1)16位無符號數(shù):0~1111111111111111,即0~2^-1=65535

2)16位原碼定點小數(shù):1.111111111111111"0.111111111111111,BP-〔1-2T5〕~1-2T5

3)16位補碼定點小數(shù):1.000000000000000~0.111111111111111,即T~1-2-15

4)16位補碼定點整數(shù):1000000000000000~0111111111111111,gp-215~215-1

2.8用補碼表示8位二進制整數(shù),最高位用一位表示符號〔即形如X°X|X2X3X4X5X6X7〕時,模

應(yīng)為多少?

解:因為8位二進制數(shù)補碼的表示范圍為:-128~127一共有256個數(shù),所以模為2560

2.9用IEEE75432位浮點數(shù)標準表示十進制數(shù)

a)?5b)3.1415927c)64000

—o—

8

解:

a)首先分別將整數(shù)和分數(shù)局部轉(zhuǎn)換成二進制數(shù):

-6-=-110.101

8

移動小數(shù)點,使其變成1.M的形式:

-110.101=-1,10101*22

于是得到:

S=0,e=2,E=10+01111111=10000001,M=10101

最后得到32位浮點數(shù)的二進制存儲格式為:

11000000110101000000000000000000=[C0D40000]16

b)首先分別將整數(shù)和分數(shù)局部轉(zhuǎn)換成二進制數(shù):

3.1415927=11.00100100001111110110101

移動小數(shù)點,使其變成LM的形式

11.00100100001111110110101=1.100100100001111110110101X2

于是得到:

S=0,e=1,E=1+01111111=10000000,M=10010010000111111011010

最后得到32位浮點數(shù)的二進制存儲格式為:

01000000010010010000111111011010=[40490FDA]]6

c)首先將6400轉(zhuǎn)換成二進制數(shù):

64000=1100100000000

移動小數(shù)點,使其變成1.M的形式

1100100000000=1.100100000000X212

于是得到:

S=0,e=12,E=1100+01111111=10001011,M=1001

最后得到32位浮點數(shù)的二進制存儲格式為:

01000101110010000000000000000000=(45080000)16

2.10求與IEEE75432位浮點數(shù)43940000H對應(yīng)的十進制數(shù)。

解:

43940000H=[01000011100101000000000000000000]2

S=0,E=[10000111]2T27=8,M=l.00101

所以表示數(shù)為100101000,對應(yīng)的十進制數(shù)為296。

2.11求32位IEEE754浮點數(shù)能表示的最大數(shù)和最小數(shù)。

解:用IEEE754格式(E的取值范圍:1'254,留出全0和全1分別表示0和無窮大)

313023220

EM

(1)最大數(shù)的二進制表示:

011111110即2127(2-2-23)

(2)最小數(shù)的二進制表示:

111111110llllllimillllllllllll即-2⑵(2-2儂)

n

2.12設(shè)有兩個正浮點數(shù):Ni=2?XMi,N2=2XM2o

⑴假設(shè)m〉n,是否有Ni〉Nz?

〔2〕假設(shè)曲和M2是規(guī)格化的數(shù),上述結(jié)論是否正確?

解:⑴不一定。

32

例如,Ni=2X0.001,N2=2X0.01,此時m〉n,卻有即=用。

32

再如,Ni=2X0.001,N2=2X0.1,此時m〉n,卻有N1<N2。

〔2〕正確。

因為浮點數(shù)規(guī)格化,要求尾數(shù)的最高位為非0數(shù)碼,即當(dāng)尾數(shù)的值不為零時,其絕對值

應(yīng)大于或等于(1/2)儂

那么曲和M2都必須是0.IXX…X的形式。這時,假設(shè)m〉n,那么一定有刈>電。

2.13設(shè)二進制浮點數(shù)的階碼為3位,尾數(shù)是7位。用模2補碼寫出它們所能表示的最大正

數(shù)、最小正數(shù)、最大負數(shù)和最小負數(shù),并將它們轉(zhuǎn)換成十進制數(shù)。

解:補碼真值

最大正數(shù):011;0.Him,23X〔1-2刃

最小正數(shù):101;0.000001,2372-6

最大負數(shù):101;1.111111,-23X26

最小負數(shù):011;1.000000,-23x〔1-2專

2.14將以下十進制數(shù)表示成浮點規(guī)格化數(shù),階碼4位,尾數(shù)10位,各含1位符號,階碼和

尾數(shù)均用補碼表示。

[1]57/128〔2)-69/128

解:⑴57/128=(0.0111001)2(記x=0.0111001,那么以]原=以]反=以]補=0.0111001,

規(guī)格化:[x]補=0.111001*2」

階碼的原碼為:1001,因此補碼為:nn

尾數(shù)為:0111001000

表示成浮點規(guī)格化數(shù):11110111001000

⑵-69/128=(-0.1000101)2,記X=-O.1000101,那么[x]原=1.1000101,[x]反=1.0111010,

[x]補=1.onion,

無需規(guī)格化,階碼為OOOO,尾數(shù)為1011101100

表示成浮點規(guī)格化數(shù):00001011101100

2.15設(shè)有效信息為01011011,分別寫出奇校驗碼和偶校驗碼。如果接收方收到的有效信息

為01011010,說明如何發(fā)現(xiàn)錯誤。

解:奇偶校驗位分別為:0和I,

奇校驗碼:010110110

偶校驗碼:010110111

如果采用奇校驗,那么發(fā)送方發(fā)出的奇校驗碼x=010110110〔前8位是有效信息位,最后一

位是校驗位〕,

如果接收方收到的x=010110100(只有1位出錯,最后一個0是校驗位),

接收方按奇校驗方式根據(jù)01011010計算得到的驗位。=1,與從信息中讀到得校驗碼的取

值不同,說明傳送的信息發(fā)生了錯誤。

如果采用偶校驗,利用相似的方法可以發(fā)現(xiàn)錯誤。

2.16由6個字符的7位ASCII編碼排列,再加上水平和垂直偶校驗位構(gòu)成如表2.23的

行列構(gòu)造〔最后一列為水平奇偶校驗位,最后一行為垂直奇偶校驗位〕

表2.23ASCH碼穿插校驗

字符7位ASCII碼HP

30X.x200110

Y,100100X31

一1010110

X4

丫201X5Xo1111

D100x710Xs0

=0X9111X1011

VP00

111XM1XI;

那么XiX2X3X4處的比特分別為;X5X6X7X8處的比特分別為」000;X9X10X?X12

處的比特分別為-1011-;Yi和七處的字符分別為和—

解答思路:利用穿插奇/偶校驗原理來確定各個X值,再查詢ASCH碼表獲知Y\和丫2是什

么字符。

2.17設(shè)8位有效信息為01101110,試寫出它的海明校驗碼。給出過程,說明分組檢測方式,

并給出指誤字及其邏輯表達式。如果接收方收到的有效信息變成01101111,說明如何定位

錯誤并糾正錯誤。

解:被檢驗位有8位,設(shè)檢驗位有r位

因為:8+r<=2r-1

r=4;

設(shè)四位分別為Pi,?2,P3,Pt

海明碼為:PiP20P3110P41110

Pl:3,5,7,9,11

P2:3,6,7,10,11

P3:5,6,7,12

P4:9,10,11,12

所以Pl=l,P2=lP3=0P4=l

海明碼為:“0011011110

指錯位G1:1,3,5,7,9,11

G2:2,3,6,7,10,11

G3:4,5,6,7,12

G4:8,9,10,11,12

Gl=0,G2=0,G3=0,G4=0

圖略。

2.18設(shè)要采用CRC編碼傳送的數(shù)據(jù)信息x=1001,當(dāng)生成多項式為G〔X〕=1101時,請寫

出它的循環(huán)校驗碼。假設(shè)接收方收到的數(shù)據(jù)信息x'=1101,說明如何定位錯誤并糾正錯誤。

解:作模二除法:""J

1001000=1111+如

G。)11011101

所以循環(huán)碼為:1001011。

1101011…011

假設(shè)接收到的數(shù)據(jù)信息x'=1101,-=lew+,所以是第2位出錯,將第2

G(x)1101

位的1改為0即可。

第三章運算方法和運算器習(xí)題三

3.1解釋以下名詞

變形形補碼:即用兩個二進制位來表示數(shù)據(jù)的符號位,其余與補碼一樣。

溢出:運算結(jié)果超出數(shù)據(jù)類型所能表示數(shù)據(jù)范圍的現(xiàn)象稱為溢出。

陣列乘法:采用類似手工乘法運算的方法,用大量與門產(chǎn)生手工乘法中的各乘積項,同時將

大量一位全加器按照手工乘法算式中需要進展加運算的各相關(guān)項的排列方式組成加法器陣

列。

恢復(fù)余數(shù)除法:比擬被除數(shù)〔余數(shù)〕與除數(shù)的大小是用減法實現(xiàn)的。對原碼除法而言,由于

操作數(shù)以絕對值的形式參與運算,因此,相減結(jié)果為正〔余數(shù)的符號位為0〕說明夠減,商

±1;相減結(jié)果為負〔余數(shù)的符號位為1〕說明不夠減,商上0。

由于除法通過減法實現(xiàn),當(dāng)商上1時,可將比擬數(shù)據(jù)大小時的減法操作與除法操作中的

減法操作合并,即商上1后繼續(xù)后面的除法操作。商上0時說明不夠減,但因比擬操作時已

經(jīng)實施了一次減法,因此,需要對執(zhí)行比擬操作后的結(jié)果加上除數(shù),既將余數(shù)復(fù)原成比擬操

作前的數(shù)值,這種方法就稱為恢復(fù)余數(shù)法。

不恢復(fù)余數(shù)除法:又稱加減交替法,是對恢復(fù)余數(shù)法的改良。不恢復(fù)余數(shù)法的特點是不夠減

時不再恢復(fù)余數(shù),而根據(jù)余數(shù)的符號作相應(yīng)處理就可繼續(xù)往下運算,因此運算步數(shù)固定,控

制簡單,提高了運算速度。

陣列除法:類似于陣列乘法器的思想,為了加快除法的執(zhí)行速度,也可以采用陣列除法器來

實現(xiàn)除法。為簡化運算及陣列除法器的構(gòu)造,對參加運算的數(shù)據(jù)進展適當(dāng)?shù)奶幚恚蛊湟哉?/p>

數(shù)的形式參加運算。

行波進位:多位進位之間存在高位進位的產(chǎn)生依賴低位進位的?種進位方式。

并行進位:高、低進位之間不存在具有依存關(guān)系,而是同時計算的進位方式。

算術(shù)移位:分為算術(shù)左移和算術(shù)右移。其中算數(shù)左移n位相當(dāng)于乘上2n,執(zhí)行方法是把原來

的數(shù)中每一位都向左移動n個位置,左面移出的高位丟棄不要,右面低位空出的位置上全部

補0,當(dāng)符號位發(fā)生改變時說明發(fā)生了溢出。算術(shù)右移時,符號位保持不變,其余各位依次

右移,最右邊一位移出,將符號位拷貝到左邊空出的位,一次移位相當(dāng)于除2。

邏輯移位:邏輯左移n位的執(zhí)行方法,是把原來的數(shù)中每一位都向左移動n個位置,左面移

出的高位丟棄不要,右面低位空出的位置上全部補"0"。邏輯右移n位的執(zhí)行方法是把原來

數(shù)中的每一位都向右移動n個位置,右面移出的低位丟棄不要,左面高位空出的位置上全部

補0。

對階:使階碼相等的過程,對階的時-般采取小的階碼向大階碼看齊的方式。

規(guī)格化:就是使浮點數(shù)的運算結(jié)果中,將尾數(shù)從非規(guī)格化數(shù)變成規(guī)格化數(shù)的過程。根據(jù)尾數(shù)

形式的不同,規(guī)格化可分為左移規(guī)格化和右移規(guī)格化。

3.2答復(fù)以下問題:

1)為什么采用并行進位能提高加法器的運算速度?

答:由于并行進位電路能很快產(chǎn)生各位的進位信號,使得加法器的速度大大提高。

2)如何判斷浮點數(shù)運算結(jié)果是否發(fā)生溢出?

答:由于溢出與數(shù)據(jù)的表示范圍有關(guān),而浮點數(shù)的階碼影響到其數(shù)據(jù)表示的范圍,因此,浮

點數(shù)的溢出是通過接碼的是否溢出為判斷標志。對于采用雙符號位的階碼而言,當(dāng)雙符號位

不同時表示浮點數(shù)發(fā)生溢出,否那么那么未發(fā)生溢出。

3)如何判斷浮點數(shù)運算結(jié)果是否為規(guī)格化數(shù)?如果不是規(guī)格化數(shù),如何進展規(guī)格化?

答:當(dāng)尾數(shù)采用補碼表示時,假設(shè)運算結(jié)果不是11.0XX…X或00.1XX…X的形式

時,結(jié)果就不是規(guī)格化數(shù)。那么應(yīng)進展相應(yīng)的規(guī)格化處理:

?當(dāng)尾數(shù)符號為01或10時,需要向右規(guī)格化,且只需將尾數(shù)右移一位,同時將結(jié)果的階

碼值加lo

?當(dāng)尾數(shù)運算結(jié)果為11.IXX…X或00.0XX…X時需要左移規(guī)格化,而且左移次數(shù)不

固定,與運算結(jié)果的形式有關(guān)。

左規(guī)的方法是尾數(shù)連同符號位一起左移位、和的階碼減1,直到尾數(shù)局部出現(xiàn)11.0或

00.1的形式為止。

4)為什么陣列除法器中能用CAS的進位/借位控制端作為上商的控制信號?

答:陣列除法器利用不恢復(fù)余數(shù)的除法,當(dāng)商上1的時候,會產(chǎn)生進位,當(dāng)商上0時,不產(chǎn)

生進位,進位信號與上商信號是一樣的,所以可以用CAS的進位/借位控制作為上商的控制

信號。

5)移位運算和乘法及除法運算有何關(guān)系?

答:移位運算是乘除法中的根本運算。

3.3x和y,用變形補碼計算x+y,并判斷結(jié)果是否溢出。

〔1〕x=0.11010,y=0.101110

〔2〕x=0.11101,y=—0.10100

〔3〕x=-0.10111,y=-0.11000

解:⑴[x+y]補=01.100010,溢出。

〔2〕[x+y]th=00.01001,未溢出。

⑶[x+y]補=10.10001,溢出。

3.4x和y,用變形補碼計算x—y,并判斷結(jié)果是否溢出。

⑴x=0.11011,y=0.11101

〔2〕x=0.10111,y=0.11110

[3]x=-0.11111,y=-0.11001

解:⑴[x-y]補=11.11H0,未溢出。

〔2〕[x-y]補=11.11001,未溢出。

〔1〕[x-y]補=11.11001,未溢出。

3.5設(shè)移碼用6位表示(包含2位符號位),求[x±y]移

(Dx=-6,y=-3

(2)x=7,y=11

(3)x=-3,y=-12

解:〔1〕〔x]移=001010,[y]移=001101[-y]移=110011[Y]^=111101[-Y]補=000011

[X]移+[y]移=010111,

[X]移+[丫]補=001010+111101=000111

根據(jù)移碼加法公式[x+y]移=[X]移+[Y]補=000111

根據(jù)移碼加法公式及溢出判斷規(guī)那么,雙符號位為00,結(jié)果為負,未溢出。

根據(jù)移碼的減法公式:

[x-y]^=[x]移+[-y]補

=001010+000011=001101

根據(jù)移碼溢出判斷規(guī)那么,雙符號位為00,結(jié)果為負,未溢出。

〔2〕0]移=110111,[丫]補=001011[-y]補=110101

根據(jù)移碼加法公式[x+丫]移=2]移+[Y]|h=010111+001011=100010

〔根據(jù)教材中說明的當(dāng)以譯碼和補碼兩種數(shù)據(jù)表示進展運算時,要將移碼第一符號位

表示為0〕

根據(jù)移碼溢出判斷規(guī)那么,雙符號位為10,結(jié)果為正,且發(fā)生溢出。

根據(jù)移碼的減法公式:

[*-丫]移=[x]移+[-y]補

=010111+110101=001100

根據(jù)移碼溢出判斷規(guī)那么,雙符號位為00,結(jié)果為負,未溢出。

〔3〕略,請參照此題前兩小題的思路和方法求解即可

3.6用原碼一位乘法計算xXy=?

(1)X=-O.11111,y=0.11101

(2)x=-0.11010,y=-0.01011

解:⑴

局部積乘數(shù)(y)判斷位說明

T

00.00000yf.11101Po=O

+00.mu_______

00.11111—

^00.011111yr.1110右移一位,得Pl

+00.00000________________

oo.ouiik

-^00.0011111yf.Hl右移一位,得P2

+oo.mu___________________

oi.ooiioL

-*00.10011011yr.11右移一位,得P3

+oo.mu__________________

01.10010

一00.110010011y.1右移二同,得Pl

+oo.mu

01.11000

-^00.111000001ly右移一位,得P5=|x|?|y|

由于Pf=x(■十yr=0十1=1

所以x-y=-0.1110000011

⑵局部積乘數(shù)(y)判斷位說明

T

00.00000yf.01011P0=0

+00,11010_______

00.11010—

-*00.01101Oy-0101右移一位,得Pi

+00.11010________________

01,00111k

700.1001110yf.010右移一位,得P2

+00.00000________________

00.loonL|

-?00.OlOOlllOyr.01右移一位,得P3

+00.11010________________

01.00011

―00.100011110y.0右移一位,得P4

+00.00000

00.10001

-*00.0100011110%右移一位,得Ps=|x|?|y|

由于Pf=x(■十yf=1十1=0

所以x-y=0.0100011110

3.7用補碼一位乘法計算xXy=?

(1)x=0.10110,y=-0.00011

(2)x=-0.011010,y=-0.011101

解:⑴

[x]補=0.10110,[-x]補=1.01010,[y]|pl.11101

局部積乘數(shù)y?y?+i說明

U

00.000001.111010yn+i=o_

+11.01010y,+1yn-01,力口[-x]補

11.01010—

-^11.1010101.11101右移一位,得Pi_

+00.10110yn+iyn=10力口[x]補

00.010111

-00.00101101.1110右移一位,得P2_

+11.01010y?+iyn=01,加Rx]補

11.011111—1

^11.101111101.Ill右移一位,得P3

+00.00000y?+iyn=11,加0

11.10111

-11.1101111101.11右移一位,得P,1

+00.00000yn+iyn=ll,力口0

11.11011

-11.11101111101.1右移一些得P5

+00.00000yn+iyn=ll,力[10

11.1110111110最后一步數(shù)據(jù)不移位

所以3y]補=1.1110111110

(2)[x]補=1.100110,[-x]補=0.011010,[y]|h=l.100011

局部積乘數(shù)ynyn+i說明

44

00.0000001.1000110yn+i=0

+00.011010yn+yn=01,加[―x]補

00.011010

^00.00110101.100011右移一位,得Pi

+00.000000_____________yn+iyn=ll,加0

00.001101

一00.000110101.10001右移一位,得P2

+11.100110yn+iyn=10,力口[x]補________

11.101100—

~11.1101100101.1000右移一位,得P3

+00.000000yn+iyn=00,力_______________

11.110110

-^11.11101100101.100右移位得B

+00.000000yn+iyn=00,加_2________________

11.111011

-

^11.111101100L01.10右移,位,得P5

=力口[

+00.011010yn+Yn01,-x]補

00.010111

~00.0010111100101.1右移一位,得Po

+00.000000yn+yn=00,力口0

00.001011110010最后一步數(shù)據(jù)不移位

所以[x,y]補=0.001011110010

3.8用原碼不恢復(fù)余數(shù)法和補碼不恢復(fù)余數(shù)法it■算x-ry—r

(1)x=0.10101,y=0.11011

(2)x=-0.10101,y=0.11011

解:⑴[y]補=0.11011,[—y]補=L00101

源碼不恢復(fù)余數(shù)法:

被除數(shù)/余數(shù)商存放器上商位說明

00.10101

+[-y](h11.00101(x-y)比擬

11.110100r0<0,商上0

一11,101000左移一位

+00.11011余數(shù)為負,加y比擬

00.01111_1r)>0,商上1

-00.111100.1左移一位

+[-y]補11.00101余數(shù)為正,減y比擬

000.00011

1r2>0,商上1

-00.00110011左移一位

+[-y](h11.00101余數(shù)為正,減y比擬

血11.01011

0r3<0,商上0

-11.101100.110左移一位

+00.11011余數(shù)為負,加y比擬

□00.000010.11011r1>0,商上1,左移一位

即一00.00010

+[-y]補11.0010:

溫馨提示

  • 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

提交評論