本节书摘来华章计算机《计算机科学导论》一书中的第2章 ,第2.5节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.5 练习
小测验
在本书网站上提供一套与本章相关的交互式测验题。强烈建议学生在继续本章习题前首先完成相关测验题以检测对本材料的理解。
复习题
1.定义一个数字系统。
2.辨析位置化和非位置化数字系统。
3.定义位置化数字系统中的底或基数。位置化数字系统中,底与符号的数量有什么关系?
4.简述十进制系统。为什么称作十进制?该系统的底是多少?
5.简述二进制系统。为什么称作二进制?该系统的底是多少?
6.简述八进制系统。为什么称作八进制?该系统的底是多少?
7.简述十六进制系统。为什么称作十六进制?该系统的底是多少?
8.为什么二进制和十六进制互换很容易?
9.十六进制系统中1个数码表示二进制系统中的几位?
10.八进制系统中1个数码表示二进制系统中的几位?
练习题
1.将下列二进制数转换为十进制数,不用计算器并写出计算过程:
- (01101)2 b. (1011000)2 c. (011110.01)2 d. (111111.111)2
2.将下列十六进制数转换为十进制数,不用计算器并写出计算过程: - (AB2)16 b. (123)16 c. (ABB)16 d. (35E.E1)16
3.将下列八进制数转换为十进制数,不用计算器并写出计算过程: - (237)8 b. (2731)8 c. (617.7)8 d. (21.11)8
4.将下列十进制数转换为二进制数,不用计算器并写出计算过程: - 1234 b. 88 c. 124.02 d. 14.56
5.将下列十进制数转换为八进制数,不用计算器并写出计算过程: - 1156 b. 99 c. 11.4 d. 72.8
6.将下列十进制数转换为十六进制数,不用计算器并写出计算过程: - 567 b. 1411 c. 12.13 d. 16.5
7.将下列八进制数转换为十六进制数,不用计算器并写出计算过程: - (514)8 b. (411)8 c. (13.7)8 d. (1256)8
8.将下列十六进制数转换为八进制数,不用计算器并写出计算过程: - (51A)16 b. (4E1)16 c. (BB.C)16 d. (ABC.D)16
9.将下列二进制数转换为八进制数,不用计算器并写出计算过程: - (01101)2 b. (1011000)2 c. (011110.01)2 d. (111111.111)2
10.将下列二进制数转换为十六进制数,不用计算器并写出计算过程: - (01101)2 b. (1011000)2 c. (011110.01)2 d. (111111.111)2
11.将下列十进制数转换为二进制数,使用例2.17中讨论的另一种方法,并写出计算过程: - 121 b. 78 c. 255 d. 214
12.将下列十进制数转换为二进制数,使用例2.18中讨论的另一种方法,并写出计算过程: - 35/8 b. 123/32 c. 413/64 d. 125/128
13.在底为b的位置化数字系统中,可用k个数码表示的最大整数数字是bk-1。分别找出以下系统中使用6个数码的最大数字:
a.二进制 b.十进制 c.十六进制 d.八进制
14.不进行转换,找出下面各个情况中在目标系统中所需的最少数码数量:
- 5个十进制数码转换为二进制 b. 4个十进制数码转换为八进制
- 7个十进制数码转换为十六进制
15.不进行转换,找出下面各个情况中在目标系统中所需的最少数码数量: - 5位二进制数码转换为十进制 b. 3个八进制数码转换为十进制
- 3个十六进制数码转换为十进制
16.下表显示如何重写小数,使其分母是2的幂次(1,2,4,8,16等等)。
但是,我们有时需要组合它们以得到合适的小数。例如,0.625是0.5+0.125。这就意味0.625可以写成1/2+1/8或5/8。
将下列十进制小数改写为带2的幂次的小数:
- 0.1 875 b. 0.640 625 c. 0.40 625 d. 0.375
17.使用前面的解题方法,把下列数转换为二进制数: - 7.1 875 b. 12.640 625 c. 11.40 625 d. 0.375
18.找出下列情形的整数最大值: - b=10,k=10 b. b=2,k=12 c. b=8,k=8 d. b=16,k=7
19.找出用于存储下列整数所需的最小位数:
a.小于1000 b.小于100 000 c.小于64 d.小于256
20.一个小于bk的数可以用以b为底的k个数码表示。求下列情况各需要数码的数量:
a.小于214的二进制整数 b.小于108的十进制整数
c.小于813的八进制整数 d.小于164的十六进制整数
21.一个用于因特网的公共底是b=256。我们使用256个符号来表示该系统中的数字。设计者使用十进制数字0到255来表示其中一个符号,而不是创建大量的新符号。也就是说,符号集是S={0,1,2,3,…,255}。该系统中的数字总是以S1.S2.S3.S4这种4个符号间隔3个点的形式出现。该系统用于定义因特网的网址(参见第6章)。例如,该系统中的一个地址是10.200.14.72,等价于十进制中的10×2563+200×2562+14×2561+72×2560=180883016。这个数字系统称为点十进制计数法。写出下列因特网地址的十进制数值:
- 17.234.34.14 b. 14.56.234.56 c. 110.14.56.78 d. 24.56.13.11
22.前面问题中因特网地址也可以表示为位模式。这种情况,用32位表示一个地址。在点十进制计数法中的一个符号用8位。例如,地址10.200.14.72,也可表示为00001010 11001000 00001110 01001000。用位表示下列因特网地址: - 17.234.34.14 b. 14.56.234.56 c. 110.14.56.78 d. 24.56.13.11
23.写出等值下列罗马数字的十进制数: - XV b. XXVⅡ c. VLⅢ d. MCLVⅡ
24.把下列十进制数转换成罗马数字: - 17 b. 38 c. 82 d. 999
25.找出下列有错的罗马数字: - MMIM b. MIC c. CVC d. VX
26.玛雅文明发明了位置化的二十进制(以20为底)数字系统,称为玛雅数字系统。他们用20为底可能是因为他们使用手指和脚趾一起来计数。该系统使用的20个符号建立在3个更简单的符号之上。该系统的先进特征在于它有符号0,是一个外壳。另外2个符号是一个圈(或一个鹅卵石)表示1,以及一个横杆(或一个棍子)表示5。为表示大于19的数字,数字竖写。在因特网搜索以下问题的答案:十进制数12、123、452和1256在玛雅数字系统中是什么?
27.巴比伦文明发展了首个位置化数字系统,称为巴比伦数字系统。他们继承了闪族人和阿卡得人的数字系统。将其发展为位置化的六十进制(以60为底)数字系统。该底现今还用于时间和角度。例如,1小时为60分钟;1分钟为60秒。同样,1度为60分;1分为60秒。作为底为b的位置化系统需要b个符号(数码),我们希望一个位置化的六十进制系统有60种符号。但是巴比伦人没有符号0,而且通过堆叠表示1和10的2个符号构造出其他59个符号。在因特网搜索以下问题的答案:
a.用巴比伦数字表示十进制数:11 291,3646,3582。
b.指出没有符号0可能出现的问题。巴比伦数字系统是如何解决这个问题的?
小程序
为了模拟每章中讨论的一些概念,我们编写了一些Java的小程序。强烈建议学生通过尝试这些应用程序来加深对每章讨论材料的理解。