Skip to content

三、数据存储

总结

  • 数据以不同的形式出现,包括数字、文本、音频、图像和视频。所有的数据类型都转换为称为位模式的统一表现形式。
  • 数字在存储到计算机内存中之前被转换成二进制系统。有数种方法来处理符号。有两种方法来处理小数点:定点和浮点。整数可以被当作小数点位置固定的数字:小数点固定在最右边一位。无符号整数是永远不会为负的整数。存储有符号整数的方法之一是符号加绝对值格式。这种格式中,最左位用于显示符号且其余位定义绝对值。符号和绝对值互相分开。几乎所有的计算机都使用二进制补码表示法来存储位于n位存储单元中的有符号整数。该方法中,无符号整数的有效范围被分为两个相等的子范围。第一个子范围用来表示非负整数,第二个子范围用于表示负整数。在二进制补码表示法中,最左位决定整数的符号。但符号和绝对值互相分开。实数是带有整数部分和小数部分的数字。实数使用浮点表示法存储在计算机中。一个数字在浮点表示法中由三部分组成:符号、位移量和定点数。
  • 文本的片断是用来表示该语言中某个意思的一系列的符号。我们可用位模式来表示每一个符号。不同的位模式(代码)集合被设计用于表示文本符号。硬件和软件制造商联合起来共同设计了一种名为Unicode的代码,这种代码使用32位表示一个符号。
  • 音频表示声音或音乐。音频是模拟数据。我们不能够在一段时间记录无限数量的值,我们只能记录一些样本。样本数量依赖于模拟信号中变化的最大数量。从每个样本测量来的值是真实的数字。量化指的是将样本的值截取为最接近的整数值的一种过程。
  • 存储在计算机中的图像使用两种不同的技术:光栅图或矢量图。当需要存储模拟图像(如照片)时,就用到了光栅图。图像被扫描(采样)然后存储像素。用矢量图图像的方法,一个图像被分解成几何图形的组合,例如,线段、矩形或圆形。每个几何形状由数学公式表达。
  • 视频是图像(称为帧)在时间上的表示。一部电影就是一系列的帧逐个播放而形成运动的图像。换言之,视频是随空间(单个图像)和时间(一系列图像)变化的信息表现。

复习

1.说出5种计算机可以处理的数据。

2.位模式的长度如何与其能表示的符号数量相关?

3.位图方法是如何以位模式来表示一个图像的?

4.矢量图方法优于位图方法的优点是什么?其缺点又是什么?

5.将音频数据转换为位模式需要哪些步骤?

6.比较和对照在无符号、符号加绝对值以及二进制补码格式中的正整数的表示法。

7.比较和对照在无符号、符号加绝对值以及二进制补码格式中的负整数的表示法。

8.比较和对照在符号加绝对值、二进制补码格式和余码格式中的0的表示法。

9.讨论在符号加绝对值和二进制补码格式中最左位扮演的角色。

10.回答以下关于实数浮点表示法的问题:

a.为什么需要规范化?

b.什么是尾数?

c.数字在规范化以后,何种信息被计算机存储在内存中?

练习

1.我们可以有多少不同的5位模式?

2.一些国家的车牌有两个十进制数码(0~9),我们可以有多少种不同的车牌?如果不允许使用数码

0,又会有多少种不同的车牌?

3.用2个数码跟3个大写字母(A~Z)的车牌来重做上题。

4.一种机器有8个不同的圈。为表示每个圈需要多少位?

5.学生在一门课程中的成绩可用A、B、C、D、F、W(退学)或1(未完成)表示等级。表示这些等级

需要多少位?

6.一个公司决定给每个员工分配唯一的位模式。如果该公司有900名雇员,构建该表示法的系统最少

需要多少位?可分配多少位模式?如果再雇佣另外300名员工,系统需要增加位数吗?说明答案。

7.如果我们使用4位模式表示0~9的数码,将浪费多少位模式?

8.一个音频信号每秒钟采样8000次,每个样本有256级不同的表示。表示这个信号需要每秒多

少位?

9.将下列十进制数转换成8位无符号整数。

a. 23

b.121

c.34

d.342

10.将下列十进制数转换成16位无符号整数。

a.41.

b.411

c.1234

d.342

11.将下列十进制数转换成8位二进制补码表示法。

a. -12

b.-145

c. 56

d.142

12.将下列十进制数转换成16位二进制补码表示法。

a.102

b.-179

c.534

d.62 056

13.将下列8位无符号整数转换成十进制数。

a.01101011

b.10010100

c.00000110

d.01010000

14.将下列8位二进制补码表示的整数转换成十进制数。

a.01110111

b.11111100

c.01110100

d.11001110

15.下面是一些二进制补码表示的二进制数。请问如何改变它们的正负。

a.01110111

b.11111100

c.01110111

d.11001110

16.如果在一个数上应用二进制补码表示法转换两次,将会得到原数。在下面的数上试试看。

a.01110111

b.11111100

c.01110100

d.11001110

17.将下面的二进制浮点数规范化。在规范化后详细指明指数的值是多少。

a. 1.10001

c.2-2×101.110011

b.2'×111.1111

18.将下面的数转换成32位IEEE格式。

d.2-5×101101.00000110011000

a.-2×1.10001

b.+2×1.111111

19.将下面的数转换成64位IEEE格式。

c.+2*×1.01110011

d.-2-×1.01101000

a.-2×1.10001

b.+2×1.111111

20.将下面的数转换成32位的IEEE形式。

c.+2×1.01110011

d.-2-×1.01101000

a. 7.187 5

b. -12.640 625

c. 11.406 25

d.-0.375

21.将下列8位符号加绝对值表示的整数转换成十进制数。

a.01110111

b.11111100

c.01110100

d.11001110

22.将下列十进制数转换成8位符号加绝对值表示法。

a.53

b.-107

c.-5

d.154

23.在计算机中表示有符号数字的方法之一是二进制反码。在这种表示法中,表示正数时我们将其直接

存为二进制数字;表示负数时,对该数字进行二进制反码运算。将下列十进制数转换成8位二进制

反码表示法。

a.53

b.-107

c.-5

d. 154

24.将下列8位二进制反码表示的数转换成十进制数。

a.01110111

b.11111100

c.01110100

d.11001110

25.如果在一个数上应用二进制反码表示法转换两次,将会得到原数。在下面的数上试试看。

a.01110111

b.11111100

c.01110100

d.11001110

26.另一种求二进制补码的方法是首先转换成二进制反码表示法,然后把结果加1(二进制加法在第4

章讲解)。试用两种方法转换下面的数,分析比较结果。

a.01110111

b.11111100

c.01110100

d.11001110

  1. 在十进制数中,与二进制反码对等的称为十进制反码(1=2-1和9=10-1)。对于n位的单元,我们

用十进制反码表示数字的范围是 -[(10"/2)-1] 到 +[(10”/2)-1]。带有n个数码的十进制反码数字通

过下面方法获得:如果数字为正,十进制反码就是其自身;如果数字为负,我们将每个数码减9。

针对3个数码位的单元回答以下问题:

a.使用十进制反码可表示的数字范围是多少?

b.该系统中我们如何决定数字的符号?

c.在该系统中我们会有两个0吗?

d.如果c的答案是肯定的,表示+0和-0的是什么?

28.求出下列数的十进制反码,假设只有3个数码位(参见题)。

a.+234

b.+560

c. -125.

d.-111

29.在十进制数中,与二进制补码对等的称为十进制补码(在二进制系统中,2是底;在十进制系统中,

10是底)。对于n位的单元,我们用十进制补码表示数字的范围是:

-(10”/2)到+(10*/2-1)

带有n个数码的十进制补码数字通过下面方法获得;先求出该数字的十进制反码,接着给结果

加1。针对3个数码位的单元回答以下问题:

a.使用十进制补码可表示的数字范围是多少?

b.该系统中我们如何决定数字的符号?

c.在该系统中我们会有两个0吗?

d.如果c的答案是肯定的,表示+0和-0的是什么?

30.求出下列数的十进制补码,假设只有3个数码位。

a.+234

b.+560

c.-125

d.-111

31.在十六进制数中,与二进制反码对等的称为十六进制反码(1=2-1和15=16-1)。

a.3个数码位使用十六进制反码可表示的数字范围是多少?

b.说明在十六进制系统中如何获得十六进制反码?

c.在该系统中我们会有两个0吗?

d.如果c的答案是肯定的,表示+0和-0的是什么?

32.求出下列数的十六进制反码,假设只有3个数码位。

a.+B14

b.+FE1

c.-1A

d.-1E2

33.在十六进制数中,与二进制补码对等的称为十六进制补码。

a.3个数码位使用十六进制补码可表示的数字范围是多少?

b.说明在十六进制系统中如何获得十六进制补码?

c.在该系统中我们会有两个0吗?

d.如果c的答案是肯定的,表示+0和-0的是什么?

34.求出下列数的十六进制补码,假设只有3个数码位。

C.-1A

d.-1E2

a.+B14

b.+FE1