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

下載本文檔

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

文檔簡介

《計算機組成原理》課

后題答案-清華大學(xué)出

版-秦磊華-吳非,?

本文檔內(nèi)字體為阿里巴巴普惠體R,CTRL+A全選可調(diào)整字體屬性及字體大小

-CAL-FENGHAI.NetworkInformationTechnologyCompany.2020YEAR

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

1.1解釋下列名詞

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

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

將降低一半。

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

機存取。

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

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

時間單位。

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

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

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

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

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

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

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

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

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

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

程序。

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

稱為軟/硬件功能是等價的,如浮點運算既可以由軟件實現(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等指標(biāo)計算處系統(tǒng)

的可用性。

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

等價的?

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

是構(gòu)成計算機的物質(zhì)基礎(chǔ),是計算機系統(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)的形式反饋給人們的設(shè)備。

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

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

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

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

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

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

長直接影響硬件的代價。

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

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

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

各層次的作用:

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

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

機器級的一段微型程序的功能實現(xiàn)。

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

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

目標(biāo)程序。

高級語言級:完全面向用戶,是用戶關(guān)心的目標(biāo),可執(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)視和服務(wù)等功能,常將系統(tǒng)軟件分為以

下六類:操作系統(tǒng),言處理程序,標(biāo)準(zhǔn)程序庫,服務(wù)性程序,數(shù)據(jù)庫管理系統(tǒng)和算機網(wǎng)絡(luò)軟

件。

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

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

屬于低級語言。

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

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

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

它們都是計算機的編程語言,并且是計算機編程語言發(fā)展的三個階段。三

者各自的特點:

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

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

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

化,提高運行速度;能夠最大限度地發(fā)揮硬件的功能。但是編寫的代碼非常難

懂,不好維護;開發(fā)效率很低,時間長且單調(diào)。

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

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

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

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

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

提高系統(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

解:CPH=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若某程序編譯后生成的目標(biāo)代碼由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é)論?

"IQ

解:1)優(yōu)化前:CPI=Z(CP/jx-^)=lx0.4+2x0.2+2x0.15+2x0,25

I=Iic

=1.6

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

CPI二X—IC4=lx1/4+2x1/4+2x3/16+2x5/16

i=iic

=1.75

時鐘頻率

2)根據(jù)公式MIPS=cpix106得

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

優(yōu)化后:MIPS=(500X106)/(1.75X106)=285.7

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

了A類指令條數(shù),卻降低了程序的執(zhí)行速度。

第二章數(shù)據(jù)表示方法習(xí)題二

2.1解釋下列名詞

真值:正號和負(fù)號分別用“+”和表示,數(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ù)在機器中的表示形式,是正負(fù)符號數(shù)碼化后的二進制數(shù)據(jù)。

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

表示正,“11”表示負(fù)。

規(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ī)律分成若干組,每組安排一個校驗位進行奇偶測

試,就能提供多位檢錯信息,以指出最大可能是哪位出錯,從而將其糾正。

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

校驗碼,基利用生成多項式并基于模2運算建立編碼規(guī)則。

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

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

2.2回答下列問題

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

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

現(xiàn)等特點。

具體來說,是因為:

(1)技術(shù)實現(xiàn)簡單,計算機是由邏輯電路組成,邏輯電話通常只有兩個狀

態(tài),開關(guān)

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

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

單,有利

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

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

碼,正好

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

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

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

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

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

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

(2)兩個用補碼表示的數(shù)相加時,如果最高位(符號位)有進位,則進位被舍

棄0

這樣的運算有兩個好處:

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

化運算器的結(jié)構(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ū)分兩個ASCII碼字符和一個漢字?

答:將一個漢字看成是兩個擴展ASCH碼,使表示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ù)碼。若按權(quán)求和,和數(shù)就等于該代碼所

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

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

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

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

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

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

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

8)簡述CRC的糾錯原理。

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

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

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

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

正;

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

下一個余數(shù),繼續(xù)在新余數(shù)基礎(chǔ)上補零除以生成多項式,繼續(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=O,則[+0]原=0.00…0,[+0]反=0.00…0,[+0]=0.00-0;

X=-O,則[-0]源=1.00-0,[-0]反=1.11-1,[-0]^=0.00-0;

x=0.10101,則[x]原=0.10101,[x]反=0.10101,[x]樸=0.10101;

X=-0.10101,貝[x]原=1.10101,[x]s=1.01010,[x]tt=1.01011;

x=0.11111,則[x]域=0.11111,[xk=0.00000,[x]補=0.10001;

X=-0.11111,則[x]原=1.11111,[x]反=1.00000,[xLh=1.00001;

x=—0.10000,則[x]jg=1.10000,[x]反=1.01111,[x]w=1.10000;

x=0.10000,則[x]V=0.10000,[x]g=0.10000,[x]tt=0.10000?

2.4已知數(shù)的補碼表示形式,求數(shù)的真值。

[x]ib=0.10010,[x]?=l.10010,[x]#=l.11111,

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

解:

[x]?=0.10010,則[x]虞=0.10010,x=0.10010;

[x]tt=l.10010,則[x]ja=l.01101,x=-0.01101;

[x]?=l.11111,則反h=l.00000,X=-O;

[x]補=1.00000,則僅標(biāo)=1.11111,X=-O.lllll;

[x]樸=0.10001,則[x6=0.10001,x=0.10001;

[x]補=1.00001,則[x]睬=1.11110,x=-0.11110o

2.5已知x=0.10110,y=—0.01010,求:

[x/2]*,[x/4"卜,[y/2])t,[2y])t

解:[x]原=0.10110=。]反=0]補,

所以[x/2]補=0.,[x/4]*=0.;

[y]僚=1.01010,[y]s=l.10101,[y]?=l.10110,

所以[y/2]產(chǎn)1.,[2y]補=1.0110。

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

Intx=-1;

Unsignedu=;

Printf("x=%u=%d\n”,x,x);

Printf("u=%u=%d\n”,u,u);

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

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

原因:x是int型,在計算機中以補碼形式存在。%口以無符號輸出,%d輸出

真值,所以X==-lO

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

%口符號輸出第一位為非符號位,所以是

%d第一位為符號位,所以是負(fù)數(shù),取反加1還是231所以是

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

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

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

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

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

解:

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

2)16位原碼定點小數(shù):1.111111111111111-0.111111111111111,即-(1-2-

”)~12仃

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

"5

4)16位補碼定點整數(shù):1000000000000000-0111111111111111,即-2卜~

2|5-1

2.8用補碼表示8位二進制整數(shù),最高位用一位表示符號(即形如

X0X1X2X3X4X5X6X7)時,模應(yīng)為多少?

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

2.9用IEEE75432位浮點數(shù)標(biāo)準(zhǔn)表示十進制數(shù)

a).6°b)3.064000

8

解:

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

-6-=-l10.101

8

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

-110.101=-!.10101*22

于是得到:

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

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

11000000110101000000000000000000=(C0D40000)16

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

3=11.1

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

11.1=1.01X2

于是得到:

S=0,e=l,E=l+=,M=0

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

01000000010010010000111111011010=(40490FDA)16

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

64000=00

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

00=1.0X212

于是得到:

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

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

01000101110010000000000000000000=(45C80000)16

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

解:

H=(01000011100101000000000000000000)2

S=0,E=()2-127=8,M=1.00101

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

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

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

窮大)

313023220

EM

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

01即2⑵(2-2a)

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

11即-2⑵(2-2必)

mn

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

(1)若m>n,是否有NI>N2?

(2)若Mi和M2是規(guī)格化的數(shù),上述結(jié)論是否正確?

解:(1)不一定。

32

例如,NI=2X0.001,N2=2X0.01,此時m>n,卻有NI=N2。

32

再如,NI=2X0.001,N2=2X0.1,此時m>n,卻有N1VN2。

(2)正確。

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

時,其絕對值應(yīng)大于或等于(l/2)io。

那么Mi和M2都必須是0.1XX…X的形式。這時,若m>n,則一定有

NI>N2O

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

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

解:補碼真值

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

最小正數(shù):101;0.,23X2-6

最大負(fù)數(shù):101;1.,-23X2^

最小負(fù)數(shù):oil;1.,-23X(1-2與

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

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

(1)57/128(2)—69/128

解:(1)57/128=(0.)2>記x=0.,則[xh=[xh=[x]補=0.,

規(guī)格化:區(qū)補=0.*2"

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

尾數(shù)為:

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

(2)-69/128=(0)2,記x=-0.,則因原=1.,[x]反=1.,[x]補=1.,

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

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

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

如何發(fā)現(xiàn)錯誤。

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

奇校驗碼:

偶校驗碼:

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

位),

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

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

表明傳送的信息發(fā)生了錯誤。

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

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

行列結(jié)構(gòu)(最后一列為水平奇偶校驗位,最后一行為垂直奇偶校驗位)

表2.23ASCII碼交叉校驗

字符7位ASCII碼HP

30X,00110

Y,1001001

X,1010110

Y201X51111

D100100

011Xl(,11

VP00111x?1

貝IJXiX2X3X」處的比特分另ij為XsX6X-Xs處的比特分別為1000;XgXl0XnX,2

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

解答思路:利用交叉奇/偶校驗原理來確定各個X值,再查詢ASCII碼表獲知

Yi和丫2是什么字符。

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

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

并糾正錯誤。

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

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

r=4;

設(shè)四位分別為Pi,P2,P3,P4

海明碼為:P1P20P3110P41110

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

海明碼為:0

指錯位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ù)據(jù)信息x'=1101,說明如何定位錯誤并糾正錯誤。

解:作模二除法:"OX'=1001000=1111+-^-

G(x)11011101

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

1101011=1000+”,所以是第2位出錯,將

若接收到的數(shù)據(jù)信息x=1101,

G(x)1101

第2位的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é)果為負(fù)(余數(shù)的符號位為1)說明不夠

減,商上0。

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

除法操作中的減法操作合并,即商上I后繼續(xù)后面的除法操作。商上0時表明

不夠減,但因比較操作時已經(jīng)實施了一次減法,因此,需要對執(zhí)行比較操作后

的結(jié)果加上除數(shù),既將余數(shù)還原成比較操作前的數(shù)值,這種方法就稱為恢復(fù)余

數(shù)法。

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

特點是不夠減時不再恢復(fù)余數(shù),而根據(jù)余數(shù)的符號作相應(yīng)處理就可繼續(xù)往下運

算,因此運算步數(shù)固定,控制簡單,提高了運算速度。

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

陣列除法器來實現(xiàn)除法。為簡化運算及陣列除法器的結(jié)構(gòu),對參加運算的數(shù)據(jù)

進行適當(dāng)?shù)奶幚?,使其以正?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回答下列問題:

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

?。河捎诓⑿羞M位電路能很快產(chǎn)生各位的進位信號,使得加法器的速度大大提

rWio

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

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

圍,因此,浮點數(shù)的溢出是通過接碼的是否溢出為判斷標(biāo)志。對于采用雙符號

位的階碼而言,當(dāng)雙符號位不同時表示浮點數(shù)發(fā)生溢出,否則則未發(fā)生溢出。

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

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

義的形式時,結(jié)果就不是規(guī)格化數(shù)。則應(yīng)進行相應(yīng)的規(guī)格化處理:

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

時將結(jié)果的階碼值加1。

?當(dāng)尾數(shù)運算結(jié)果為11.1XX…X或00.0義X…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.3已知x和y,用變形補碼計算x+y,并判斷結(jié)果是否溢出。

(1)x=0.11010,y=0.

(2)x=0.11101,y=-0.10100

(3)x=-0.10111,y=-0.11000

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

(2)[x+y]產(chǎn)00.01001,未溢出。

(3)[x+y],h=l0.10001,溢出。

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

(1)x=0.11011,y=0.11101

(2)x=0.1011by=0.11110

(3)x=-0.11111,y=-0.11001

解:(1)[x-y]樸=11.11110,未溢出。

(2)[x-y]<h=l1.11001,未溢出。

(1)[x-y]ih=l1.11001,未溢出。

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

(l)x=-6,y=-3

(2)x=7,y=11

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

解:(1)[xk=,[y]產(chǎn)[-y]f?=fY]tt=[-Y]行

[X]稱+必移=,

[X.+[Y*+=

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

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

出。

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

[x-y]s=[x]ft+[-y]lh

二+二

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

(2)[x]^=,[y]?h=[-y]i.i=

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

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

第一符號位表示為0)

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

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

[x-y]移=[x]移+[-y]/卜

=+二

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

(3)略,請參照本題前兩小題的思路和方法求解即可

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

(1)x=-0.11111,y=0.11101

(2)x=-0.11010,y=-0.010U

解:⑴

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

t

00.00000Iyf.11101Po=O

+00.11111

00.11111-

-00.011111yf.1110右移一位,得Pi

+00.00000

00.01111

-00.0011111yf.Ill右移一位,得P2

+00.11111

01.00110

f00.10011Oilyf.11右移一位,得P3

+oo.mil

01.10010

-*00.110010011y.1右移一位,

得P4

+00.1111

01.11000

->00.1110000011yf右移一

位,得P5=|x|?|y|

由于Pf=Xf?十yf=O十1=1

所以

部分積乘數(shù)(y)判斷位

說明

00.00000yf.01011Po=O

+00.11010

00.11010

->00.011010yf.0101右移一位,得Pi

+00.11010

01.00111

-*00.1001110yf.010右移一位,得P2

+00.00000

00.10011

-00,01001110yf.01右移一位,得P3

+00.11010

01.00011

-*00.100011110右移一位,

得P4

+00.0000)

00.10001

->00.0100011110yf右移一位,

得P5=|x|?lyl

由于Pf=xt?十yf=l十1=0

所以?y=0.

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

(1)x=0.10110,y=-0.00011

(2)x=-0.,y=-0.

解:⑴

[x]#=0.10110,[-x]補=1.01010,[y]補=1.11101

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

00.000001.Xn+l=0

+11.01010yn+iyn=01,力口[―x]樸

11.01010

f11.10100_1.11101右移一位,

得R

+00.1011fr-|yn+iyn=10,

加[x]補

00.01011

-oo.ooioiHo1.mo右移一位,

得P-2

+11.01010yn+iyn=01,加

[-x]補

11.01111

一11.101111101.Ill右移一位,

得P3

+00.00000yn+iyn=11?加0

11.10111

f11.1101111101.11右移一位,

得P4

+00.00000yn+iyn=ll,加0

11.11011

f11.1101111101.1右移一位,

得Ps

+00.00)00yn

+iyn=11?>mo

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

所以[X?y]補=1?

(2)[x]}b=l.,[—x]?=0.,[y]^=l.

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

00.1.Yn+1=:0

+00.yn+iyn=01,力口[—x]?

00.

-00.(1—右移一位,得Pl

+00.

yn+iyn=U,加。

00.

-00.101.L0001丕移一位,得Pz

+11.yn+iyn=10,加[x]*

11.

->11.(10.1)00_右移一位,得P3

+00.n+iyn=00,力口0

11.

f1LQ0101.100_右移一位,得P”

+00.yn+iyn=oo,加0

11.

-11.

10010J.10右移一位,得P5

+00.

yn+iyn=oi,力口[―x]仆

00.

->00.右移一位,得Pe

+00.

yn+iyn

00,加0

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

所以[X?y]樸=0.0

3.8用原碼不恢復(fù)余數(shù)法和補碼不恢復(fù)余數(shù)法計算x+y=?

(1)x=0.10101,y=0.11011

(2)x=-0.10101,y=0.11011

解:(1)[y]tt=0.1101b[—y]補=1.00101

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

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

00.10101

+[~y]tt11.00101(X—y)比較

-

11.110o0r()<0,商上0

占11.101300左移一位

H00.1101

余數(shù)為負(fù),加y比?而

00.0111

n>0,商上1

口00.11:100.1

左移一位

+[-y]H11.0001

余數(shù)為畫減y比?屆'

00.00011

「2>0,商上1

國-00.00」00.11

即30.00010

+[-y]仆11.0(101余數(shù)為正,減y

比較

11.001110.11010r5<0,商上0,只

移商

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

評論

0/150

提交評論