《计算机组成与体系结构(原书第4版)》 —2 习题

举报
华章计算机 发表于 2019/11/19 16:55:08 2019/11/19
【摘要】 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章, 习题,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。

习题

1.使用减法或除法求余执行以下基数转换:

                                    

a)45810=     3b)67710=     5

c)151810=     7d)440110=     9

2.使用减法或除法求余执行以下基数转换:

a)58810=     3b)225410=     5

c)65210=     7d)310410=     9

3.使用减法或除法求余执行以下基数转换:

a)13710=     3b)24810=     5

c)38710=     7d)63310=     9

4.执行以下基数转换:

a)201013=     10b)23025=     10

c)16057=     10d)6879=     10

5.执行以下基数转换:

a)200123=     10b)41035=     10

c)32367=     10d)13789=     10

6.执行以下基数转换:

a)212003=     10b)32445=     10

c)34027=     10d)76579=     10

7.将下列十进制小数转换为二进制,二进制小数点的右边最多留6个位置:

a)26.78125b)194.03125

c)298.796875d)16.1240234375

8.将下列十进制小数转换为二进制,二进制小数点的右边最多留6个位置:

a)25.84375b)57.55

c)80.90625d)84.874023

9.将下列十进制小数转换为二进制,二进制小数点的右边最多留6个位置:

a)27.59375b)105.59375

c)241.53125d)327.78125

10.转换以下二进制小数为十进制:

a)10111.1101b)100011.10011

c)1010011.10001d)11000010.111

11.转换以下二进制小数为十进制:

a)100001.111b)111111.10011

c)1001100.1011d)10001001.0111

12.转换以下二进制小数为十进制:

a)110001.10101b)111001.001011

c)1001001.10101d)11101001.110001

13.转换十六进制数AC1216为二进制数。

14.转换十六进制数7A0116为二进制数。

15.转换十六进制数DEAD BEEF16为二进制数。

16.使用8位原码、1的补码(或反码)、2的补码(或补码)、偏移值为127的移码表示以下十进制数。

a)77b)-42c)119d)-107

17.使用8位原码、1的补码(或反码)、2的补码(或补码)、偏移值为127的移码表示以下十进制数。

a)60b)-60c)20d)-20

18.使用8位原码、1的补码(或反码)、2的补码(或补码)、偏移值为127的移码表示以下十进制数。

a)97b)-97c)44d)-44

19.使用8位原码、1的补码(或反码)、2的补码(或补码)、偏移值为127的移码表示以下十进制数。

a)89b)-89c)66d)-66

20.在以下情况下,8位二进制数10011110的十进制值是多少:

a)它可解释为无符号数字?

b)它存储在使用原码表示的计算机上?

c)它存储在使用1的补码(或反码)表示的计算机上?

d)它存储在使用2的补码(或补码)表示的计算机上?

e)它存储在使用偏移值为127的移码表示的计算机上?

21.在以下情况下,8位二进制数00010001的十进制值是多少:

a)它可解释为无符号数字?

b)它存储在使用原码表示的计算机上?

c)它存储在使用1的补码(或反码)表示的计算机上?

d)它存储在使用2的补码(或补码)表示的计算机上?

e)它存储在使用偏移值为127的移码表示的计算机上?

22.在以下情况下,8位二进制数10110100的十进制值是什么?

a)它可解释为无符号数字?

b)它存储在使用原码表示的计算机上?

c)它存储在使用1的补码(或反码)表示的计算机上?

d)它存储在使用2的补码(或补码)表示的计算机上?

e)它存储在使用偏移值为127的移码表示的计算机上?

23.给定以下两个二进制数:11111100和01110000。

a)若这两个数字均为无符号二进制数,那么哪一个较大?

b)当在计算机上使用有符号2的补码(或补码)表示时,这两者中的哪一个较大?

c)当在计算机上使用原码表示时,这两者中的哪一个较小?

24.使用3位“字”,列出所有可能的有符号二进制数及其等价的十进制数:

a)原码b)1的补码(或反码)c)2的补码(或补码)

25.使用4位“字”,列出所有可能的有符号二进制数及其等价的十进制数:

a)原码b)1的补码(或反码)c)2的补码(或补码)

26.从前两个问题的结果中,归纳出可以表示的值的范围(十进制),在任何给定x位数下使用如下编码:

a)原码b)1的补码(或反码)c)2的补码(或补码)

27.填写下表,指出使用各种格式表示的每种二进制模式。

无符号整数4位二进制值原码1的补码(或反码)2的补码(或补码)偏移值为7的移码00000100012001030011401005010160110701118100091001101010111011121100131101141110151111

28.假设有一个(非常)微小的计算机,其字长为6位。在以下表示中,这个计算机可以表示的最小负数和最大正数是多少?

a)1的补码(或反码)b)2的补码(或补码)

29.要将两个以2的补码表示的数相加,什么一定是真的?

30.在大多数计算机中存储有符号整数最常用的表示法是什么,为什么?

31.你在环游世界时偶然发现了一种未知的文明。那些称自己为斑马人的人们做数学使用40个独立的字符(可能是因为斑马身上有40条条纹)。他们非常喜欢使用计算机,所以需要一台能做斑马人数学的计算机,这意味着一台计算机要表示所有的40个字符。你是一个计算机设计师并决定帮助他们。你决定最好是使用二进制编码斑马语BCZ,(这很像BCD,但它编码斑马语而不是十进制数)。如果要使用最小的位数,你需要多少位表示一个字符?

32.对以下无符号二进制数执行加法。

a) 01110101+00111011  b) 00010101+00011011c) 01101111+00010001

33.对以下无符号二进制数执行加法。

a) 01000100+10111011  b) 01011011+00011111c) 10101100+00100100

34.使用2的补码(或补码)算术执行以下有符号二进制数的减法:

a) 01110101-00111011  b) 00110101-00001011c) 01101111-00010001

35.使用2的补码(或补码)算术执行以下有符号二进制数的减法:

a) 11000100-00111011  b) 01011011-00011111c) 10101100-00100100

36.假设以下数为无符号整数,执行二进制乘法:

a)1100×101  b)10101×111c)11010×1100

37.假设以下数为无符号整数,执行二进制乘法:

a)1011×101  b)10011×1011c)11010×1011

38.假设以下数为无符号整数,执行二进制除法:

a)101101÷101  b)10000001÷101c)1001010010÷1011

39.假设以下数为无符号整数,执行二进制除法:

a)11111101÷1011  b)110010101÷1001c)1001111100÷1100

40.使用倍增法转换102123为十进制数(提示:你必须改变乘数。)

41.使用原码表示,完成以下操作:+0+(-0)=

(-0)+0=

0+0=

(-0)+(-0)=42.假设一台计算机使用4位1的补码(或反码)表示,忽略溢出,在下面的伪代码程序终止后,什么样的值将存储在变量j中?

 

43.假设以下整数为有符号2的补码(或补码),使用布斯算法执行二进制乘法。

a) 1011×1011  b) 0011×1011c) 1011×1100

44.使用算术移位,执行以下操作:

a)000101012的两倍  b)011101112的四倍c)110010102的一半

45.如果某个系统上的浮点数表示有1位符号位、3位指数和4位有效位数:

a)如果这个系统的存储已被规格化,那么它可以存储的最大正数和最小正数是多少?(假设没有隐含位、没有移码、指数使用2的补码(或补码)表示法并且全0和全1指数都是允许的。)

b)如果我们更喜欢所有指数都为非负数,则应该在指数中使用什么移码?你为什么选择这种移码?

46.使用上一个问题中的模型(包括选择的移码),并使用与加数和被加数同样的表示方法,对以下浮点数做加法运算:

0 1 1 1 1 0 0 0

0 1 0 1 1 0 0 1

 

计算上一个问题答案中的相对误差(如果有的话)。

47.假设我们正在使用本书给出的以浮点表示的简单模型(该表示使用14位格式,使用偏移值为15的5位指数、8位的标准化尾数和数字的单符号位):

a)显示计算机如何用这种浮点格式表示数字100.0和0.25。

b)计算机在通过改变一个数字的a部分使它们都以相同的2的幂来表示的情况下,执行a部分中的两个浮点数相加。

c)显示计算机如何使用给定的浮点表示法表示b部分的总和。计算机实际存储的十进制值的和是多少?请解释。

48.什么会导致下溢,对此可以做些什么呢?

49.为什么我们通常以规格化形式存储浮点数?使用移码而不是向指数添加符号位的优点是什么?

50.设a=1.0×29、b=-1.0×29和c=1.0×21。使用本书中描述的简单浮点数模型(该表示使用14位格式,偏移值为15的5位指数、标准化尾数为8位和数字的单符号位),进行以下计算,请密切关注操作顺序。关于有限模型中浮点运算的代数性质,你能说些什么?你认为这个代数异常在乘法和加法下都成立吗?

b+(a+c)=

(b+a)+c=

51.使用IEEE-754单精度表示如何存储以下每个浮点数(一定要指示符号位、指数和有效数域):

a)12.5b)-1.5c)0.75d)26.625

52.使用IEEE-754双精度表示如何存储以下每个浮点数(一定要指示符号位,指数和有效数域):

a)12.5b)-1.5c)0.75d)26.625

53.假设我们找到了另一个浮点数表示法。使用这个表示,一个12位浮点数有1位表示符号、4位为指数、7位为尾数。和这个简单模型一样进行规范化,使小数点右边的第一个数字必须是1。指数中的数字是有符号2的补码(或补码)表示。不使用移码,并且没有隐含位。显示使用以下格式可以表示的最小正数(只需填写在提供的方格中)。它的十进制数是多少?

 

54.找到3个浮点值来说明浮点数加法不满足结合律(你需要在有特定编译器的特定硬件上运行一个程序。)

55.a)假设字符A的ASCII码是1000001,那么字符J的ASCII码是什么?

b)假设字符A的EBCDIC码是1100 0001,那么字符J的EBCDIC码是什么?

56.a)字母A的ASCII码是1000001,字母a的ASCII码是1100001。给定字母G的ASCII码是1000111,不看表2-7,字母g的ASCII码是什么?

b)字母A的EBCDIC码是1100 0001,字母a的EBCDIC码是1000 0001。给定G的EBCDIC码是1100 0111,不看表2-6,字母g的EBCDIC码是什么?

c)字母A的ASCII码是1000001,字母a的ASCII码是1100001。给定Q的ASCII码是1010001,不看表2-7,字母q的ASCII码是什么?

d)字母J的EBICIC码是1101 0001,字母j的EBCDIC码是1001 0001。给定Q的EBCDIC码是1101 1000,不看表2-6,字母q的EBCDIC码是什么?

e)一般来说,如果要编写一个程序将大写ASCII字符转换为小写字符,你会怎么做?观察表2-6,你可以使用相同的算法将大写EBCDIC字母转换为小写吗?

f)如果你的任务是将使用ASCII或Unicode的计算机与基于EBCDIC的计算机进行接口,转换EBCDIC字符到ASCII字符的最好的方式是什么?

57.假设计算机上有24位字。在这24位中,我们希望表示值295。

a)计算机如何表示十进制值295?

b)如果我们的计算机使用8位ASCII和偶校验,那么计算机如何表示字符串295?

c)如果我们的计算机使用带有零填充的压缩BCD,计算机如何表示数字+295?

58.解码以下ASCII消息,假设有7位ASCII字符,无奇偶校验位:

1001010 1001111 1001000 1001110 0100000 1000100 1001111 1000101

59.为什么系统设计师希望将Unicode作为新系统的默认字符集?你能给出不使用Unicode作为默认值的理由吗?(提示:考虑语言兼容性与存储空间。)

60.假设我们希望创建一个使用3位信息位、1位奇偶校验位(附加到信息的末尾)并使用奇校验的编码。列出此编码中所有合法的码字。编码的汉明距离是多少?

61.假设我们给出下面的码字子集,创建带有一个奇偶校验位的7位存储器字:11100110、00001000、10101011和11111110。这个代码使用的是偶校验还是奇校验?请解释原因。

62.纠错汉明码是否是系统错误检测码?请解释原因。

63.计算以下代码的汉明距离:

0011010010111100

0000011110001111

0010010110101101

0001011010011110

64.计算以下代码的汉明距离:

0000000101111111

0000001010111111

0000010011011111

0000100011101111

0001000011110111

0010000011111011

0100000011111101

1000000011111110

65.在为一个编码定义汉明距离时,我们选择使用任何两个编码之间的最小(汉明)距离。解释为什么使用最大或平均距离不会更好。

66.假设我们想要有一种纠错码,对于长度为10的存储器字,它允许纠正所有一位错。

a)这需要多少个奇偶校验位?

b)假设我们使用本章介绍的汉明算法设计纠错码,找到码字以表示这个10位信息字:

1 0 0 1 1 0 0 1 1 0。

67.假设我们想要有一种纠错码,对于长度为12的存储器字,它将允许纠正所有一位错误。

a)这需要多少个奇偶校验位?

b)假设我们使用本章介绍的汉明算法设计纠错码,找到码字以表示这个12位信息字:

1 0 0 1 0 0 0 1 1 0 1 0。

68.假设我们正在使用一种纠错码,对长度为7的存储器字,它允许纠正所有一位错。我们已经计算出需要4个校验位,所有码字的长度都为11。码字根据本书提供的汉明算法创建。我们现在收到了以下码字:1 0 1 0 1 0 1 1 1 1 0,假设使用偶校验,这是一个合法的码字吗?如果不是,根据我们的纠错码,错误在哪里?

69.使用以下码字重复练习题68:0 1 1 1 1 0 1 0 1 0 1

70.假设我们正在使用一个纠错码,对长度为12的存储器字,它允许纠正所有一位错。我们已经计算出需要5个校验位,所有码字的长度为17。码字根据本书提供的汉明算法创建。我们现在收到了以下码字:0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1,假设使用偶校验,这是一个合法的码字吗?如果不是,根据我们的纠错码,错误在哪里?

71.请列举两种不同于汉明编码的里德-所罗门码方式。

72.什么时候你会在一个汉明码上面选择一个CRC?什么时候你会在一个CRC上面选择一个汉明码?

                                    

73.求下列模2除法的商和余数。

a)10101112÷11012b)10111112÷111012

c)10110011012÷101012d)1110101112÷101112

74.求下列模2除法的商和余数。

a)11110102÷10112b)10101012÷11002

c)11011010112÷101012d)11111010112÷1011012

75.求下列模2除法的商和余数。

a)110010012÷11012b)10110002÷100112

c)111010112÷101112d)1111100012÷10012

76.求下列模2除法问题的商和余数。

a)10011112÷11012b)10111102÷11002

c)10011011102÷110012d)1111010102÷100112

77.使用CRC多项式1011,计算信息字1011001的CRC码字。检查在接收方执行的除法。

78.使用CRC多项式1101,计算信息字01001101的CRC码字。检查接收方执行的除法。

79.使用CRC多项式1101,计算信息字1100011的CRC码字。检查接收方执行的除法。

80.使用CRC多项式1101,计算信息字01011101的CRC码字。检查在接收方执行的除法。

81.选择一个架构(如80486、Pentium、Pentium IV、SPARC、Alpha或MIPS)。研究该架构如何处理本章所介绍的概念。例如,它用什么表示负值?它支持什么字符编码?

82.我们已经看到,浮点算术既不满足结合律也不满足分配律。你认为为什么是这样的?


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。