計(jì)算機(jī)組成習(xí)題答案(清華大學(xué)出版社)_第1頁(yè)
計(jì)算機(jī)組成習(xí)題答案(清華大學(xué)出版社)_第2頁(yè)
計(jì)算機(jī)組成習(xí)題答案(清華大學(xué)出版社)_第3頁(yè)
計(jì)算機(jī)組成習(xí)題答案(清華大學(xué)出版社)_第4頁(yè)
計(jì)算機(jī)組成習(xí)題答案(清華大學(xué)出版社)_第5頁(yè)
已閱讀5頁(yè),還剩120頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、。第 1 章習(xí)題 答 案5若有兩個(gè)基準(zhǔn)測(cè)試程序 p1 和 p2 在機(jī)器 m1和 m2上運(yùn)行,假定 m1和 m2的價(jià)格分別是5000 元和 8000元,下表給出了p1 和 p2 在 m1和 m2上所花的時(shí)間和指令條數(shù)。程序m1m2指令條數(shù)執(zhí)行時(shí)間 (ms)指令條數(shù)執(zhí)行時(shí)間 (ms)p1× 610000× 65000200 10150 10p2300×1033420×1036請(qǐng)回答下列問題:(1) 對(duì)于 p1,哪臺(tái)機(jī)器的速度快?快多少?對(duì)于p2 呢?( 2) 在 m1上執(zhí)行 p1 和 p2 的速度分別是多少 mips?在 m2上的執(zhí)行速度又各是多少?從執(zhí)行速

2、度來看,對(duì)于 p2,哪臺(tái)機(jī)器的速度快?快多少?( 3) 假定 m1和 m2的時(shí)鐘頻率各是 800mhz和 1.2ghz,則在 m1和 m2上執(zhí)行 p1 時(shí)的平均時(shí)鐘周期數(shù)cpi 各是多少?(4) 如果某個(gè)用戶需要大量使用程序p1,并且該用戶主要關(guān)心系統(tǒng)的響應(yīng)時(shí)間而不是吞吐率,那么,該用戶需要大批購(gòu)進(jìn)機(jī)器時(shí),應(yīng)該選擇m1還是 m2?為什么?(提示:從性價(jià)比上考慮)(5) 如果另一個(gè)用戶也需要購(gòu)進(jìn)大批機(jī)器,但該用戶使用p1 和 p2 一樣多,主要關(guān)心的也是響應(yīng)時(shí)間,那么,應(yīng)該選擇m1還是 m2?為什么?參考答案:( 1) 對(duì)于 p1, m2比 m1快一倍;對(duì)于 p2, m1比 m2快一倍。( 2)

3、 對(duì)于 m1, p1 的速度為: 200m/10=20mips; p2 為 300k/0.003=100mips 。對(duì)于 m2, p1 的速度為: 150m/5=30mips; p2 為 420k/0.006=70mips 。從執(zhí)行速度來看,對(duì)于p2,因?yàn)?100/70=1.43倍,所以m1比 m2快 0.43 倍。( 3) 在 m1上執(zhí)行 p1 時(shí)的平均時(shí)鐘周期數(shù)cpi 為: 10×800m/(200 ×106)=40 。在 m2上執(zhí)行 p1 時(shí)的平均時(shí)鐘周期數(shù)cpi 為: 5×1.2g/(150 ×106)=40 。( 4) 考慮運(yùn)行p1 時(shí) m1和

4、 m2的性價(jià)比,因?yàn)樵撚脩糁饕P(guān)心系統(tǒng)的響應(yīng)時(shí)間,所以性價(jià)比中的性能應(yīng)考慮執(zhí)行時(shí)間,其性能為執(zhí)行時(shí)間的倒數(shù)。故性價(jià)比r 為:r=1/( 執(zhí)行時(shí)間 ×價(jià)格 )r越大說明性價(jià)比越高,也即,“執(zhí)行時(shí)間 ×價(jià)格 ”的值越小,則性價(jià)比越高。因?yàn)?10×5000 > 5 ×8000,所以, m2的性價(jià)比高。應(yīng)選擇m2。( 5) p1 和 p2 需要同等考慮,性能有多種方式:執(zhí)行時(shí)間總和、算術(shù)平均、幾何平均。若用算術(shù)平均方式,則:因?yàn)?10+0.003)/2×5000 > (5+0.006)/2×8000,所以 m2的性價(jià)比高,應(yīng)選擇

5、m2。若用幾何平均方式,則:因?yàn)閟qrt(10×0.003)×5000 < sqrt(5×0.006)×8000,所以 m1的性價(jià)比高,應(yīng)選擇m1。6若機(jī)器m1和 m2具有相同的指令集,其時(shí)鐘頻率分別為1ghz和 1.5ghz。在指令集中有五種不同類型的指令 ae。下表給出了在m1和 m2上每類指令的平均時(shí)鐘周期數(shù)cpi。機(jī)器abcdem112234m222456請(qǐng)回答下列問題:。1。( 1) m1和 m2的峰值 mips各是多少?( 2)假定某程序p 的指令序列中,五類指令具有完全相同的指令條數(shù),則程序p 在 m1和 m2上運(yùn)行時(shí),哪臺(tái)機(jī)器更快?

6、快多少?在m1和 m2上執(zhí)行程序p 時(shí)的平均時(shí)鐘周期數(shù)cpi 各是多少?參考答案:( 1) m1上可以選擇一段都是a 類指令組成的程序,其峰值mips 為 1000mips。m2上可以選擇一段a 和 b 類指令組成的程序,其峰值mips為 1500/2=750mips 。( 2) 5 類指令具有完全相同的指令條數(shù),所以各占20%。在 m1和 m2上執(zhí)行程序p 時(shí)的平均時(shí)鐘周期數(shù)cpi 分別為:m1: 20%×(1+2+2+3+4)= 0.2×12 = 2.4m2: 20%×(2+2+4+5+6)= 0.2×19 = 3.8假設(shè)程序 p 的指令條數(shù)為n,則

7、在 m1和 m2上的執(zhí)行時(shí)間分別為:m1: 2.4 ×n ×1/1g = 2.4n (ns)m2: 3.8 ×n×1/1.5g = 2.53 n (ns)m1執(zhí)行 p 的速度更快,每條指令平均快0.13ns ,也即 m1比 m2快 0.13/2.53×100% 5%。(思考:如果說程序p 在 m1上執(zhí)行比m2上快 (3.82.4)/3.8×100%= 36.8%,那么,這個(gè)結(jié)論顯然是錯(cuò)誤的。請(qǐng)問錯(cuò)在什么地方?)7假設(shè)同一套指令集用不同的方法設(shè)計(jì)了兩種機(jī)器m1和 m2。機(jī)器 m1的時(shí)鐘周期為0.8ns ,機(jī)器 m2的時(shí)鐘周期為1.2ns

8、 。某個(gè)程序 p 在機(jī)器 m1上運(yùn)行時(shí)的cpi 為 4,在 m2上的 cpi 為 2。對(duì)于程序p 來說,哪臺(tái)機(jī)器的執(zhí)行速度更快?快多少?參考答案:假設(shè)程序p 的指令條數(shù)為n,則在 m1和 m2上的執(zhí)行時(shí)間分別為:m1: 4 n ×0.8 = 3.2n (ns)m2: 2 n ×1.2 = 2.4 n (ns)所以, m2執(zhí)行 p 的速度更快,每條指令平均快0.8ns ,比 m1快 0.8/3.2 ×100%=25%。×98假設(shè)某機(jī)器 m的時(shí)鐘頻率為 4ghz,用戶程序 p 在 m上的指令條數(shù)為 8 10,其 cpi 為 1.25 ,則 p 在 m上的執(zhí)行

9、時(shí)間是多少?若在機(jī)器m上從程序 p 開始啟動(dòng)到執(zhí)行結(jié)束所需的時(shí)間是4 秒,則 p 占用的 cpu時(shí)間的百分比是多少?參考答案:程序 p 在 m上的執(zhí)行時(shí)間為: 1.25 ×8×109×1/4g = 2.5 s,從啟動(dòng) p 執(zhí)行開始到執(zhí)行結(jié)束的總時(shí)間為 4 秒,其中 2.5 秒是 p 在 cpu上真正的執(zhí)行時(shí)間, 其他時(shí)間可能執(zhí)行操作系統(tǒng)程序或其他用戶程序。程序 p 占用的 cpu時(shí)間的百分比為: 2.5/4 = 62.5%。9假定某編譯器對(duì)某段高級(jí)語言程序編譯生成兩種不同的指令序列s1 和 s2,在時(shí)鐘頻率為 500mhz的機(jī)器 m上運(yùn)行,目標(biāo)指令序列中用到的指令

10、類型有a、 b、 c和 d 四類。四類指令在m上的 cpi 和兩個(gè)指令序列所用的各類指令條數(shù)如下表所示。abcd各指令的 cpi1234s1 的指令條數(shù)5221s2 的指令條數(shù)1115請(qǐng)問: s1 和 s2 各有多少條指令?cpi 各為多少?所含的時(shí)鐘周期數(shù)各為多少?執(zhí)行時(shí)間各為多少?參考答案:。2。s1有 10 條指令, cpi 為 (5 ×1+2×2+2×3+1×4)/10=1.9,所含的時(shí)鐘周期數(shù)為10×1.9=19 ,執(zhí)行時(shí)間為 19/500m = 38ns 。s2有 8 條指令, cpi 為 (1 ×1+1×2+1

11、×3+5×4)/8 =3.25,所含的時(shí)鐘周期數(shù)為8×3.25=26 ,執(zhí)行時(shí)間為 26/500m = 52ns 。(注:從上述結(jié)果來看,對(duì)于同一個(gè)高級(jí)語言源程序,在同一臺(tái)機(jī)器上所生成的目標(biāo)程序不同,其執(zhí)行時(shí)間可能不同,而且,并不是指令條數(shù)少的目標(biāo)程序執(zhí)行時(shí)間就一定少。)10假定機(jī)器m的時(shí)鐘頻率為1.2ghz,某程序 p 在機(jī)器 m上的執(zhí)行時(shí)間為12 秒鐘。對(duì) p優(yōu)化時(shí),將其所有的乘 4 指令都換成了一條左移2 位的指令,得到優(yōu)化后的程序p。已知在 m上乘法指令的cpi 為 5,左移指令的cpi 為 2,p 的執(zhí)行時(shí)間是p執(zhí)行時(shí)間的1.2 倍,則 p 中有多少條乘

12、法指令被替換成了左移指令被執(zhí)行?參考答案:顯然, p的執(zhí)行時(shí)間為 10 秒,因此, p 比 p多花了 2 秒鐘,因此,執(zhí)行時(shí)被換成左移指令的乘法指令的條數(shù)為 1.2g×2/(5 2) = 800m 。第 二章習(xí)題 答 案3實(shí)現(xiàn)下列各數(shù)的轉(zhuǎn)換。(1) (25.8125)10= (?) 2= (?)8= (?)16(2) (101101.011)2= (?)= (?)8= (?)16= (?)842110(3) (0101 1001 0110.0011)8421= (?) 10= (?)2= (?)16(4) (4e.c) 16= (?)10= (?)2參考答案:(1) (25.8125

13、)10 = (1 1001.1101)2 = (31.64)8 = (19.d)16( 2) (101101.011) 2 = (45.375) 10 = (55.3)8= (2d.6)16 = (0100 0101.0011 0111 0101)8421( 3) (0101 1001 0110.0011)8421 = (596.3)10 = (1001010100.01001100110011 ) 2 = (254.4ccc ) 16( 4) (4e.c) 16 = (78.75) 10= (0100 1110.11)24 假定機(jī)器數(shù)為8 位( 1 位符號(hào), 7 位數(shù)值),寫出下列各二進(jìn)制數(shù)

14、的原碼和補(bǔ)碼表示。+0.1001 , 0.1001 , +1.0 , 1.0 , +0.010100 , 0.010100 , +0, 0參考答案:原碼補(bǔ)碼+0.1001 :0.10010000.10010000.1001 :1.10010001.0111000+1.0 :溢出溢出1.0 :溢出1.0000000+0.010100 :0.01010000.01010000.010100 :1.01010001.1011000+0:0.00000000.00000000:1.00000000.00000005 假定機(jī)器數(shù)為8 位( 1 位符號(hào), 7 位數(shù)值),寫出下列各二進(jìn)制數(shù)的補(bǔ)碼和移碼表示。

15、+1001, 1001 ,+1, 1,+10100 ,10100,+0, 0參考答案:。3。移碼補(bǔ)碼+1001:10001001000010011001:0111011111110111+1:10000001000000011:01111111111111111+10100:100101000001010010100:0110110011101100+0:10000000000000000:10000000000000006 已知 x補(bǔ) ,求 x( 1) x補(bǔ) =1.1100111(2) x 補(bǔ)=10000000( 3) x補(bǔ) =0.1010010( 4) x 補(bǔ) =11010011參考答案:

16、( 1) x 補(bǔ) =1.1100111x =0.0011001b( 2) x 補(bǔ) =10000000x =10000000b =128( 3) x 補(bǔ) =0.1010010x = +0.101001b( 4) x 補(bǔ) =11010011x =101101b =457假定一臺(tái)32 位字長(zhǎng)的機(jī)器中帶符號(hào)整數(shù)用補(bǔ)碼表示,浮點(diǎn)數(shù)用ieee 754 標(biāo)準(zhǔn)表示,寄存器r1 和 r2的內(nèi)容分別為r1: 0000108bh, r2: 8080108bh。不同指令對(duì)寄存器進(jìn)行不同的操作,因而,不同指令執(zhí)行時(shí)寄存器內(nèi)容對(duì)應(yīng)的真值不同。假定執(zhí)行下列運(yùn)算指令時(shí),操作數(shù)為寄存器r1 和 r2 的內(nèi)容,則 r1和 r2

17、中操作數(shù)的真值分別為多少?( 1) 無符號(hào)數(shù)加法指令( 2) 帶符號(hào)整數(shù)乘法指令( 3) 單精度浮點(diǎn)數(shù)減法指令參考答案:r1 = 0000108bh = 0000 0000 0000 0000 0001 0000 1000 1011b r2 = 8080108bh = 1000 0000 1000 0000 0001 0000 1000 1011b( 1)對(duì)于無符號(hào)數(shù)加法指令, r1 和 r2中是操作數(shù)的無符號(hào)數(shù)表示, 因此,其真值分別為 r1:108bh, r2: 8080108bh。( 2)對(duì)于帶符號(hào)整數(shù)乘法指令,r1和 r2 中是操作數(shù)的帶符號(hào)整數(shù)補(bǔ)碼表示,由最高位可知,r1為正數(shù), r

18、2為負(fù)數(shù)。 r1 的真值為 +108bh, r2 的真值為 (0111 1111 0111 1111 1110 1111 01110100b + 1b) =7f7fef75h。( 3)對(duì)于單精度浮點(diǎn)數(shù)減法指令,r1 和 r2 中是操作數(shù)的ieee754 單精度浮點(diǎn)數(shù)表示。在ieee 754標(biāo)準(zhǔn)中,單精度浮點(diǎn)數(shù)的位數(shù)為32 位,其中包含1 位符號(hào)位, 8 位階碼, 23 位尾數(shù)。由 r1 中的內(nèi)容可知, 其符號(hào)位為0,表示其為正數(shù), 階碼為 00000000,尾數(shù)部分為 000 0000 00010000 1000 1011 ,故其為非規(guī)格化浮點(diǎn)數(shù),指數(shù)為126,尾數(shù)中沒有隱藏的1,用十六進(jìn)制表

19、示尾數(shù)為 +0.002116h ,故 r1 表示的真值為 +0.002116h×10 -126 。由 r2 中的內(nèi)容可知,其符號(hào)位為1,表示其為負(fù)數(shù),階碼為0000 0001, 尾數(shù)部分為 000 00000001 0000 1000 1011 ,故其為規(guī)格化浮點(diǎn)數(shù),指數(shù)為1127 =126,尾數(shù)中有隱藏的1,用十六進(jìn)制表示尾數(shù)為 1.002116h ,故 r2 表示的真值為 1.002116h×10 -1268假定機(jī)器 m的字長(zhǎng)為32 位,用補(bǔ)碼表示帶符號(hào)整數(shù)。下表第一列給出了在機(jī)器m上執(zhí)行的 c 語言程。4。序中的關(guān)系表達(dá)式,請(qǐng)參照已有的表欄內(nèi)容完成表中后三欄內(nèi)容的填寫

20、。關(guān)系表達(dá)式運(yùn)算類型結(jié)果說明0 = 0u無符號(hào)整數(shù)100 0b = 00 0b1< 0有符號(hào)整數(shù)111 1b( 1) < 00 0b (0)1< 0u無符號(hào)整數(shù)011 1b321) > 00 0b(0)(22147483647 >2147483647 1有符號(hào)整數(shù)1011 1b (2311) > 1000b ( 231)2147483647u >2147483647 1無符號(hào)整數(shù)0011 1b (231 1) < 1000b(231 )2147483647 > (int) 2147483648u有符號(hào)整數(shù)1011 1b (2311) >

21、; 100310b ( 2 )1> 2有符號(hào)整數(shù)111 1b( 1) > 11 10b ( 2)(unsigned) 1 > 2無符號(hào)整數(shù)111 1b(2 321) > 11 10b (232 2)9以下是一個(gè) c 語言程序, 用來計(jì)算一個(gè)數(shù)組a 中每個(gè)元素的和。 當(dāng)參數(shù) len 為 0 時(shí),返回值應(yīng)該是0,但是在機(jī)器上執(zhí)行時(shí),卻發(fā)生了存儲(chǔ)器訪問異常。請(qǐng)問這是什么原因造成的,并說明程序應(yīng)該如何修改。1float sum_elements(float a, unsigned len)23inti;4 float result = 0;56for (i = 0; i <

22、;= len1; i+)7result += ai;8 return result;9 參考答案:參數(shù) len 的類型是unsigned ,所以,當(dāng)len=0 時(shí),執(zhí)行l(wèi)en-1的結(jié)果為11 1,是最大可表示的無符號(hào)數(shù),因而,任何無符號(hào)數(shù)都比它小,使得循環(huán)體被不斷執(zhí)行,引起數(shù)組元素的訪問越界,發(fā)生存儲(chǔ)器訪問異常。只要將 len 聲明為 int型,或循環(huán)的測(cè)試條件改為i<len 。10. 設(shè)某浮點(diǎn)數(shù)格式為:數(shù)符階碼尾數(shù)1 位5 位移碼6 位補(bǔ)碼其中,移碼的偏置常數(shù)為16,補(bǔ)碼采用一位符號(hào)位,基數(shù)為4。( 1) 用這種格式表示下列十進(jìn)制數(shù):+1.7 , 0.12 , +19, 1/8 。(

23、2) 寫出該格式浮點(diǎn)數(shù)的表示范圍,并與12 位定點(diǎn)補(bǔ)碼整數(shù)表示范圍比較。參考答案:(假定采用0 舍 1 入法進(jìn)行舍入)( 1) +1.7 = +1.1011001b = 0.011011b×4 1, 故階碼為 1 +16 = 17 = 10001b,尾數(shù)為 +0.011011的補(bǔ)碼,即 0.011011 ,所以 +1.7 表示為 0 10001 011011 。0.12 =0.000111101b =0.011111b ×4 1, 故階碼為 1 + 16 =15 = 01111b,尾數(shù)為 0.011111 的補(bǔ)碼,即 1.100001,所以 0.12 表示為 1 01111

24、 100001。+19 = +10011b = 0.010011b×4 3,故階碼為 3 + 16 = 19 = 10011b,尾數(shù)為 0.010011 ,所以。5。+19 表示為 0 10011 010011 。1/8 = 0.125 = 0.001b =0.10000011 + 16 = 15 = 01111b ,尾數(shù)為 ×4 ,階碼為0.100000 的補(bǔ)碼,即 1.100000,所以 1/8表示為 1 01111 100000 。( 2)該格式浮點(diǎn)數(shù)表示的范圍如下。正數(shù)最大值: 0.111111b×4 11111,即: 0.333×4 15( 2

25、30 109)00000163410正數(shù)最小值: 0.000001b ×4,即: 0.001×4 ( 2 10 )負(fù)數(shù)最大值: 0.000001b×4 00000,即: 0.001 ×4 16負(fù)數(shù)最小值: 1.000000b×4 11111,即: 1.000 ×4 15因此,該格式浮點(diǎn)數(shù)的數(shù)量級(jí)在1010 109 之間。12 位定點(diǎn)補(bǔ)碼整數(shù)的表示范圍為:211 +(2 11 1) ,即: 2048 2047由此可見,定點(diǎn)數(shù)和浮點(diǎn)數(shù)的表示范圍相差非常大。11. 下列幾種情況所能表示的數(shù)的范圍是什么?( 1) 16 位無符號(hào)整數(shù)( 2)

26、16 位原碼定點(diǎn)小數(shù)( 3) 16 位補(bǔ)碼定點(diǎn)小數(shù)( 4) 16 位補(bǔ)碼定點(diǎn)整數(shù)( 5) 下述格式的浮點(diǎn)數(shù)(基數(shù)為2,移碼的偏置常數(shù)為128)數(shù)符階碼尾數(shù)1 位8 位移碼7 位原碼參考答案:( 1)無符號(hào)整數(shù): 0 2161。1515( 2)原碼定點(diǎn)小數(shù): (1 2 ) + (1 2 ) 。( 3)補(bǔ)碼定點(diǎn)小數(shù): 1 + (1 215) 。( 4)補(bǔ)碼定點(diǎn)整數(shù): 32768 +32767 。( 5)浮點(diǎn)數(shù):負(fù)數(shù): (1 27) ×2+127 27×2128。正數(shù): +2135 (1 27) ×2+127 。12. 以 ieee 754 單精度浮點(diǎn)數(shù)格式表示下列十進(jìn)

27、制數(shù)。+1.75 ,+19, 1/8 , 258參考答案:+1.75 = +1.11b = 1.11b0數(shù)符為 0,尾數(shù)為1.110 0,小數(shù)點(diǎn)×2 , 故階碼為 0+127=01111111b,前為隱藏位,所以 +1.7 表示為 0 01111111 110 0000 0000 0000 0000 0000,用十六進(jìn)制表示為3fe00000h。+19 = +10011b = +1.0011b×2 4,故階碼為 4+127 = 10000011b, 數(shù)符為0,尾數(shù)為 1.00110 0,所以 +19 表示為 0 10000011 001 1000 0000 0000 000

28、0 0000,用十六進(jìn)制表示為41980000h。31,尾數(shù)為 1.0 0,1/8 = 0.125 = 0.001b = 1.0 ×2,階碼為 3+127 = 01111100b,數(shù)符為所以 1/8 表示為 1 01111100 000 0000 0000 0000 0000 0000,用十六進(jìn)制表示為 be000000h。6。258=100000010b=1.0000001b ×2 8,故階碼為8+127=10000111b, 數(shù)符為 0,尾數(shù)為 1.0000001 ,所以 258 表示為 0 10000111 000 00010000 00000000 0000,用十六

29、進(jìn)制表示為 43810000h。13設(shè)一個(gè)變量的值為4098,要求分別用 32 位補(bǔ)碼整數(shù)和ieee 754 單精度浮點(diǎn)格式表示該變量(結(jié)果用十六進(jìn)制表示) ,并說明哪段二進(jìn)制序列在兩種表示中完全相同,為什么會(huì)相同?參考答案:4098 = +1 00000000 0010 b = +1.0000 0000001×2 1232 位 2- 補(bǔ)碼形式為: 0000 0000 0000 0000 00010000 0000 0010(00001002h)ieee754 單精度格式為: 0 10001011 0000 0000 0010 0000 0000 000( 45801000h)粗體部

30、分為除隱藏位外的有效數(shù)字,因此,在兩種表示中是相同的序列。14設(shè)一個(gè)變量的值為 2147483647 ,要求分別用 32 位補(bǔ)碼整數(shù)和 ieee754 單精度浮點(diǎn)格式表示該變量(結(jié)果用十六進(jìn)制表示) ,并說明哪種表示其值完全精確,哪種表示的是近似值。參考答案:2147483647 = 111 1111 1111 1111 1111 1111 1111 1111b= 1.11 1111 1111 1111 1111 1111 1111 1111×2 3032 位 2- 補(bǔ)碼形式為: 1000 0000 0000 0000 0000 0000 0000 0001( 80000001h)i

31、eee 754 單精度格式為: 1 10011101 1111 1111 1111 1111 1111 111( ceffffffh)32 位 2- 補(bǔ)碼形式能表示精確的值,而浮點(diǎn)數(shù)表示的是近似值,低位被截?cái)?5下表給出了有關(guān)ieee 754 浮點(diǎn)格式表示中一些重要數(shù)據(jù)的取值,表中已經(jīng)有最大規(guī)格化數(shù)的相應(yīng)內(nèi)容,要求填入其他浮點(diǎn)數(shù)的相應(yīng)內(nèi)容。(注:表中 a 代表一個(gè)在 1 到 10 之間的正純小數(shù))單精度雙精度項(xiàng)目階碼尾數(shù)以 2 的冪次表示以 10 的冪次表以 2 的冪次表示以 10 的冪的值示的值的值次表示的值0000000000.0000001011111110.001111最大規(guī)格化數(shù)11

32、1111101 1123×2127a×1038521023a×10308(2 2 )(2 2 ) ×2最小規(guī)格化數(shù)000000010.001263810223081.0 ×2a×101.0 ×2a×10最大非規(guī)格化數(shù)000000001 11(1 2 ) ×2a×10(1 2 ) ×2a×102312638521022308最小非規(guī)格化數(shù)000000000 012312614944521022?2×2=2a×102 ×2a×10+1111

33、11110.00nan11111111非全 016已知下列字符編碼:a=100 0001 , a=110 0001 ,0=011 0000 ,求 e、 e、f 、 7、 g、z、 5 的 7 位 acsii碼和第一位前加入奇校驗(yàn)位后的8 位編碼。參考答案:e 的 ascii 碼為a+ (e a)= 100 0001 + 100 = 100 0101,奇校驗(yàn)位p = 0 ,第一位前加入奇校驗(yàn)位后的8 位編碼是0 100 0101 。e 的 ascii 碼為 a + ( e a)= 110 0001 + 100 = 110 0101, 奇校驗(yàn)位p = 1,第一位前加入奇校驗(yàn)位后的8 位編碼是1 1

34、10 0101 。f 的 ascii 碼為 a + ( f a)= 110 0001 + 101 = 110 0110,奇校驗(yàn)位p = 1,第一位前 加入奇校驗(yàn)位后的8 位編碼是 1 110 0110。7。7 的 ascii碼為 0 + (7 - 0)= 011 0000 + 111 = 011 0111,奇校驗(yàn)位 p = 0, 第一位前加入奇校驗(yàn)位后的8 位編碼是 0 011 0111 。g的 ascii 碼為 a + ( g a)= 100 0001 + 0110 = 100 0111,奇校驗(yàn)位 p = 1,第一位前加入奇校驗(yàn)位后的 8 位編碼是 1 100 0111 。z 的 ascii

35、 碼為 a +( z a) = 100 0001 + 11001 = 101 1010,奇校驗(yàn)位 p = 1,第一位前加入奇校驗(yàn)位后的 8 位編碼是 1 101 1010 。5 的 ascii 碼為 0 +(50) = 011 0000 + 101 = 011 0101, 奇校驗(yàn)位 p = 1, 第一位前加入奇校驗(yàn)位后的8 位編碼是 1 011 0101 。17假定在一個(gè)程序中定義了變量x、 y 和 i ,其中, x 和 y 是 float型變量(用 ieee754 單精度浮點(diǎn)數(shù)表示),i 是 16 位 short 型變量(用補(bǔ)碼表示) 。程序執(zhí)行到某一時(shí)刻, x = 0.125 、y=7.5

36、 、i=100 ,它們都被寫到了主存(按字節(jié)編址) ,其地址分別是 100,108 和 112。請(qǐng)分別畫出在大端機(jī)器和小端機(jī)器上變量 x、y 和 i 在內(nèi)存的存放位置。參考答案:0.125 =0.001b =1.0-3×2x 在機(jī)器內(nèi)部的機(jī)器數(shù)為:1 01111100 00 0 (be00 0000h)7.5= +111.1b= +1.111×2 2y 在機(jī)器內(nèi)部的機(jī)器數(shù)為:0 10000001 11100 0 (40f0 0000h)100=64+32+4=1100100bi 在機(jī)器內(nèi)部表示的機(jī)器數(shù)為:0000 0000 0110 0100 ( 0064h)大端機(jī)小端機(jī)地

37、址內(nèi)容內(nèi)容100beh00h10100h00h10200h00h10300hbeh10840h00h109f0h00h11000hf0h11100h40h11200h64h11364h00h18假定某計(jì)算機(jī)的總線采用奇校驗(yàn),每 8 位數(shù)據(jù)有一位校驗(yàn)位,若在 32 位數(shù)據(jù)線上傳輸?shù)男畔⑹?f 3cab 96h,則對(duì)應(yīng)的4 個(gè)校驗(yàn)位應(yīng)為什么?若接受方收到的數(shù)據(jù)信息和校驗(yàn)位分別為87 3c ab 96h 和0101b,則說明發(fā)生了什么情況,并給出驗(yàn)證過程。參考答案:傳輸信息8f 3c ab 96h 展開為 1000 1111 0011 1100 1010 1011 1001 0110,每 8 位有一

38、個(gè)奇校驗(yàn)位,因此,總線上發(fā)送方送出的4 個(gè)校驗(yàn)位應(yīng)該分別為0、 1、 0、1。接受方的數(shù)據(jù)信息為87 3c ab 96h ,展開后為1000 0111 0011 1100 1010 1011 1001 0110;接收到的校驗(yàn)位分別為0、 1、 0、 1。在接受方進(jìn)行校驗(yàn)判斷如下:根據(jù)接收到的數(shù)據(jù)信息計(jì)算出4 個(gè)奇校驗(yàn)位分別為1、 1、0、 1,將該 4 位校驗(yàn)位分別和接收到的4位校驗(yàn)位進(jìn)行異或,得到 1、 0、0、 0,說明數(shù)據(jù)信息的第一個(gè)字節(jié)發(fā)生傳輸錯(cuò)誤。對(duì)照傳輸前、后的數(shù)據(jù)信息,第一字節(jié) 8fh變成了 87h,說明確實(shí)發(fā)生了傳輸錯(cuò)誤,驗(yàn)證正確。8。19寫出 16 位數(shù)據(jù)的 sec碼。假定數(shù)

39、據(jù)為0101 0001 0100 0110,說明 sec碼如何正確檢測(cè)數(shù)據(jù)位5 的錯(cuò)誤。參考答案:對(duì)于 16 位數(shù)據(jù),可以如下插入校驗(yàn)位:m m15m14m13m12pm11m10mmmmm p4m m mp3mp2p1165987654321其中 m 是原信息數(shù)據(jù),p是加入的校驗(yàn)位,對(duì)于各個(gè)校驗(yàn)位的值可以如下計(jì)算iip1 = m 1 m2 m3 m4 m5 m7m9 m11 m12 m14 m16 = 1p = m m m m m m m m m = 121346710111314p3 = m 2 m3 m4 m8 m9 m10 m11 m15m16 = 0p4 = m 5 m6 m7 m8

40、 m9 m10 m11 = 0p5 = m 12 m13 m14 m15 m16 = 0 所以此時(shí) p5 p4 p3 p2 p1 = 00011,第五位數(shù)據(jù)出錯(cuò)時(shí),數(shù)據(jù)字變?yōu)椋?0101 0001 0101 0110,p5 p4 p3 p2 p1 = 01010,故障字 = 00011 01010 = 01001 ,說明碼字第 9 位出錯(cuò),即 m5 出錯(cuò)。20假設(shè)要傳送的數(shù)據(jù)信息為:100011,若約定的生成多項(xiàng)式為:g(x)= x3+1,則校驗(yàn)碼為多少?假定在接收端接收到的數(shù)據(jù)信息為100010,說明如何正確檢測(cè)其錯(cuò)誤,寫出檢測(cè)過程。參考答案:原數(shù)據(jù)信息為 100011,對(duì)應(yīng)的報(bào)文多項(xiàng)式為m

41、(x) = x5 + x + 1,生成多項(xiàng)式的位數(shù)為4 位, 所以在原數(shù)據(jù)信息后面添加3m(x) = x8+ x4+ x33 個(gè) 0,變?yōu)?m(x) = x, 用 m(x) 去模 2 除 g(x) ,得到的余數(shù)為 111, 所以得到 crc碼為 100011 111 。檢測(cè)時(shí), 用接收到的 crc碼去模2 除生成多項(xiàng)式 1001,若得到的余數(shù)為 0,則表明正確,否則說明傳輸時(shí)發(fā)生了錯(cuò)誤。此題中接收到的crc碼為100010 111 (即數(shù)據(jù) 100010 加檢驗(yàn)位111),顯然,用 100010 111 模 2 除 1001 ,得到余數(shù)為001,不為0,說明傳輸時(shí)發(fā)生錯(cuò)誤。第 3 章習(xí)題 答

42、案2( 4)高級(jí)語言中的運(yùn)算和機(jī)器語言(即指令)中的運(yùn)算是什么關(guān)系?假定某一個(gè)高級(jí)語言源程序p 中有乘、除運(yùn)算,但機(jī)器m中不提供乘、除運(yùn)算指令,則程序p 能否在機(jī)器m上運(yùn)行?為什么?參考答案:(略)3考慮以下c語言程序代碼:intfunc1(unsigned word)return (int) ( word <<24) >> 24);intfunc2(unsigned word)return ( (int) word <<24 ) >> 24;假設(shè)在一個(gè)32 位機(jī)器上執(zhí)行這些函數(shù),該機(jī)器使用二進(jìn)制補(bǔ)碼表示帶符號(hào)整數(shù)。無符號(hào)數(shù)采用邏輯移位,帶符號(hào)整

43、數(shù)采用算術(shù)移位。請(qǐng)?zhí)顚懴卤?,并說明函數(shù)func1 和 func2 的功能。9。wfunc1(w)func2(w)機(jī)器數(shù)值機(jī)器數(shù)值機(jī)器數(shù)值0000 007fh1270000 007fh+1270000 007fh+1270000 0080h1280000 0080h+128ffff ff80h1280000 00ffh2550000 00ffh+255ffff ffffh10000 0100h2560000 0000h00000 0000h0函數(shù) func1 的功能是把無符號(hào)數(shù)高 24位清零(左移24 位再邏輯右移24 位),結(jié)果一定是正的有符號(hào)數(shù); 而函數(shù) func2的功能是把無符號(hào)數(shù)的高24

44、 位都變成和第25 位一樣, 因?yàn)樽笠?24 位后進(jìn)行算術(shù)右移,高 24 位補(bǔ)符號(hào)位(即第25 位)。4填寫下表,注意對(duì)比無符號(hào)數(shù)和帶符號(hào)整數(shù)的乘法結(jié)果,以及截?cái)嗖僮髑?、后的結(jié)果。模式xyx ×y (截?cái)嗲埃﹛×y(截?cái)嗪螅C(jī)器數(shù)值機(jī)器數(shù)值機(jī)器數(shù)值機(jī)器數(shù)值無符號(hào)數(shù)11060102001100121004二進(jìn)制補(bǔ)碼1102010+211110041004無符號(hào)數(shù)0011111700011171117二進(jìn)制補(bǔ)碼001+1111111111111111無符號(hào)數(shù)11171117110001490011二進(jìn)制補(bǔ)碼11111111000001+1001+15以下是兩段c 語言代碼,函數(shù)arith( )是直接用c 語言寫的,而optarith( )是對(duì) arith( )函數(shù)以某個(gè)確定的m和 n 編譯生成的機(jī)器代碼反編譯生成的。根據(jù) optarith() ,可以推斷函數(shù)arith() 中m和 n 的值各是多少?#definem#definenintarith(int x, int y)int result = 0 ;result = x*m + y/n;return result;int optarith ( int x, int y)in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論