自考计算机组成原理课后习题答案 下载本文

计算机组成原理 《计算机组成原理》

习 题 2

参考答案(参见课本P.58) 1. 解释下列术语

解:可在课堂讲述的内容中寻找答案,也可参考课本下述段落的内容。 原码(P14.-7~-5),补码(P15.-1~P16.1),反码(P17.17~18), 移码(P18.7~10),阶码(P20.6),尾数(P20.5~6),基数(P20.4),

机器零(P21.1~3),上溢(P21.13~14,P33.8~9),下溢(P21.15~16,P33.10), 规格化数(P20.-20~-19),Booth算法(P41.11),海明距离(P27.23), 冯·诺依曼舍入法(P54.8),检错码(P26.-14),纠错码(P27.-3), 海明码(P28.2),循环码(P29.-23),桶形移位器(P51.13); 2. 什么是定点数?它有哪些类型?(P13.-10~-5); 3. 将下列二进制数转换成十进制数。

(1) 10011101 = 157; (2) 10110110 = 182; (3) 10000111 = 135; (4) 00111000 = 56; 4. 将下列二进制数转换成十进制数。

(1) 100110102 = 154; (2) 10111012 = 93;

(3) 0.11102 = 0.875; (4) 101010.10102 = 42.625; 5. 将以下十进制数据表示成二进制数,小数点后保留6位。 (1) 35 = 1000112 (2) 67 = 10000112 (3) 103 = 11001112 (4) 252 = 111111002 (5) 0.10 = 0.0001102 (6) 0.52 = 0.1000012

(7) 5.5 = 101.1000002 (8) 120.125 = 1111000.0010002

6. 将下列十进制数转换成二进制数,再转换成八进制数和十六进制数。 (1) 234 = 111010102 = 3528 = EA16

(2) 1023 = 11111111112 = 17772 = 3FF16 (3) 131.5 = 10000011.12 = 203.48 = 83.816 (4) 27/32 = 0.110112 = 0.662 = 0.D816

7. 将以下二进制数据转换成八进制数和十六进制数。 (1)010101012 = 1258 = 5516 (2)000011112 = 0178 = 0F16

(3)1.010101012 = 1.2528 = 1.5516 (4)0.100001102 = 0.4148 = 0.8616 (5)1100.00112 = 14.148 = C.316

8. 写出下列二进制数的原码、反码、补码和移码。(假设为9位机器数)

(1) +11010100;原011010100,反011010100,补011010100,移111010100; (2) +0.1010000;原010100000,反010100000,补010100000,无移码;

(3) -10101100;原110101100,反101010011,补101010100,移001010100; (4) -0.0110000;原101100000,反110011111,补110100000,无移码; 9. 什么是规格化的浮点数?为什么要对浮点数进行规格化?(P20.-21~-18) 10. 什么是浮点数的上溢?什么是浮点数的下溢?(P21.-16~-13)

11. 对下列二进制数做8位原码、反码、补码、移码编码。(假设为8位机器数) (1) +01110;原00001110,反00001110,补00001110,移10001110; (2) -01110;原10001110,反11110001,补11110010,移01110010; 12. 求以下编码的真值。

计算机组成原理 《计算机组成原理》

(1) [x]原 =1010101;x=-0101012 =-21 (2) [x]原 =0010101;x=+0101012 =+21 (3) [x]补 =0011101;x=+111012 =+29 (4) [x]补 =1011101;x=-1000112 =-35

13. 将下列十六进制表示的IEEE单精度数代码转换成十进制数值表示。

+6

(1) 42E48000;= 0 10000101 11001001000000000000000 = +1.11001001×2= +114.25

0

(2) 3F880000;= 0 01111111 00010000000000000000000 = +1.0001×2= +1.0625

-126 -38

(3) 00800000;= 0 00000001 00000000000000000000000 = +1.0×2= +1.1755×10 +16 +13

(4) C7F00000;= 1 10001111 11100000000000000000000 = -1.111×2= -15×2 14. 将下列十进制数值用IEEE单精度数代码的十六进制表示。

+3

(1) 9;+1001=+1.001×2=0 10000010 00100000000000000000000=4110000016

-3

(2) 5/32;+.00101=1.01×2=0 01111100 01000000000000000000000=3E20000016

-3

(3) -5/32;-.00101=-1.01×2=1 01111100 01000000000000000000000=BE20000016

+2

(4) 6.125;+110.001=+1.10001×2=0 10000001 10001000000000000000000=40C4000016

15. 对下列数据做规格化浮点数编码,假定1位符号位,基数为2,阶码5位,采用移码,尾数10位,采用补码。(注意:偏移值应为16,不是与IEEE标准类似的15)

+6 10110

(1) +56;+.111×2=0111×2=0 10110 1110000000=5B8016

+6

(2) +1101112;+.110111×2=0 10110 1101110000=5B7016

-8 01000

(3) -.00381;-.1111100111×2=1.0000011001×2=1 01000 0000011001=A01916 16. 计算机中如何直接表示十进制数?(P25.-9~-6)

17. 写出下列十进制数的BCD码。(采用压缩的十进制数串形式) (1) 0;0000 (2) 9;1001

(3) 20;0010 0000

(4) 248;0010 0100 1000

18. 试将以下文字信息用ASCII码表示。 (1) MS-DOS;4D 53 2D 44 4F 53

(2) Serial Number is 1608-5A30;53 65 72 69 61 6C 20 4E 75 6D 62 65 72 20 69 73 20 31 36 30 38 2D 35 41 33 30

19. 在存储的文字信息中,计算机怎样判别它是ASCII代码还是汉字编码?(P25.15) 20. 将下列十进制数用压缩的十进制数串形式进行编码。 (1) 67453;0000 0110 0111 0100 0101 0011 (2) +67453;0110 0111 0100 0101 0011 1100 (3) -67453;0110 0111 0100 0101 0011 1101 21. 有一个7位代码的全部码字为:

a:0000000 b:0001011 c:0010110 d:0011101 f:0101100 g:0100111 h:0111010 i:0110001 j:1011000 k:1010011 l:1001110 m:1000101 n:1110100 o:1111111 p:1100010 q:1101001 (1) 求这个代码的码距;

解:将上述各个码字两两之间求码距,共可求出15+14+ ? +3+2+1=120个码距,其中最小的码距为3。 (2) 这个代码是不是循环码?

解:用“→”指向循环左移后的结果,则显然 a→a;

b→c→f→j→i→p→m→b;

计算机组成原理 《计算机组成原理》

d→h→n→q→k→g→l→d; o→o;

所以这个代码是循环码。

3

22. 取G(x)=x+x+1作为(7,4)循环码的生成多项式,试计算它所生成的全部码字。 【答疑编号10021701】

解:数据为0000时,CRC码为0000 000;数据为0001时,CRC码为0001 011; 数据为0010时,CRC码为0010 110;数据为0011时,CRC码为0011 101; 数据为0100时,CRC码为0100 111;数据为0101时,CRC码为0101 100; 数据为0110时,CRC码为0110 001;数据为0111时,CRC码为0111 010; 数据为1000时,CRC码为1000 101;数据为1001时,CRC码为1001 110; 数据为1010时,CRC码为1010 011;数据为1011时,CRC码为1011 000; 数据为1100时,CRC码为1100 010;数据为1101时,CRC码为1101 001; 数据为1110时,CRC码为1110 100;数据为1111时,CRC码为1111 111;

32

23. 对下列四位有效信息做CRC编码,生成多项式是G(x)=x+x+1。 (1) 1000;CRC码是1000 110;(与上题的对应结果不同) (2) 1111;CRC码是1111 111;

(3) 0001;CRC码是0001 101;(与上题的对应结果不同) (4) 0000;CRC码是0000 000;

24. 什么是数据的溢出?(P21.13~20;P33.7~10)

25. 对于本章中的(7,4)海明码,当出现代码y=y1y2y3y4y5y6y7 =0101010时,问是否发生了错误?错在哪一位?

【答疑编号10021702】

解:将y1 y2 y3 y4 y5 y6 y7 =0101010代入课本P28.-14~-12的三个式子中,得 s1 = y1 +y2 +y3 +y5 = 0+1+0+0 = 1 s2 = y2 +y3 +y4 +y6 = 1+0+1+1 = 1 s3 = y1 +y2 +y4 +y7 = 0+1+1+0 = 0

由此得s1s2s3 =110,查课本P.29的表2-4知e3 =1,是发生了错误,是y3错。

26. 参照图2-7画出一个具有4位加减法功能的电路,并写出在下列输入信号情况下的输出结果。 (1) M=0,A=0111,B=0110; 【答疑编号10021703】

解:S=0111+0110=1101,C=0,V=1; (2) M=0,A=1000,B=1001; 【答疑编号10021704】

解:S=1000+1001=0001,C=1,V=1; (3) M=1,A=1100,B=1000; 【答疑编号10021705】

解:S=1100+0111+0001=0100,C=1,V=0; (4) M=1,A=0101,B=1010; 【答疑编号10021706】

解:S=0101+0101+0001=1011,C=0,V=1; (5) M=1,A=0000,B=0001; 【答疑编号10021707】

解:S=0000+1110+0001=1111,C=0,V=0;

所求的电路与课本P.36的图2-8类似,只是要将32位改为4位,将xi、yi、zi分别改为Ai、Bi、Si即可。 27. 用4个全加器设计一个具有4位减1功能的电路。

计算机组成原理 《计算机组成原理》

解:最简单的电路与课本P.36的图2-8类似,只是要将32位改为4位,将y3、y2、y1、y0、分别改为0、0、0、1即可。

28. 已知下列[x]补和[y]补,用补码加减法计算[x+y]补和[x-y]补,指出结果是否溢出。 (1) [x]补 =0.11011,[y]补 =0.00011;

解:[x+y]补 =00.11110,V=0;[x-y]补 =00.11000,V=0; (2) [x]补 =0.10111,[y]补 =1.00101;

解:[x+y]补 =11.11100,V=0;[x-y]补 =01.10010,V=1; (3) [x]补 =1.01010,[y]补 =1.10001;

解:[x+y]补 =10.11011,V=1;[x-y]补 =11.11001,V=0;

29. 已知下列x和y的二进制值,用补码加减法计算[x+y]补和[x-y]补,指出结果是否溢出。 (1) x =+.10111,y =+.11011;

解:[x+y]补 =01.10010,V=1;[x-y]补 =11.11100,V=0; (2) x =+.11101,y =+.10011;

解:[x+y]补 =01.10000,V=1;[x-y]补 =00.01010,V=0; (3) x =+.11011,y =-.01010;

解:[x+y]补 =00.10001,V=0;[x-y]补 =01.00101,V=1; (4) x =-.11111,y =+.11011;

解:[x+y]补 =11.11100,V=0;[x-y]补 =10.00110,V=1;

30. 试画出一个采用快速进位电路的8位加法器电路,采用全加器电路,快速进位电路具有输入端p0、p1、p2、p3、g0、g1、g2、g3和C,输出端为c0、c1、c2、c3、P和G。

解:所求的电路与课本P.38的图2-10类似,只是要将两个快速进位电路之间的省略号去掉,将16位改为8位,将下标3改为下标1,将下标12(11)改为下标4,将下标13、14、15分别改为下标5、6、7即可。最左边的快速进位电路应有一个进位输入C(就是c0)。

31. 已知x、y的二进制值,用补码一位乘法计算[x×y]补。 (1) x=+0011,y=+0101; 【答疑编号10021708】

解:[x]补=0011,[y]补=0101, 则 [x×y]补=00001111;