《计算机科学概论》—第3章3.1节数据表示法

第3章 数据表示法
在旅行时,你可能需要一张地图,可能是老式地图、折叠地图,抑或是电子地图。不论什么样子,地图并不是你游历的地点,而是这些地点的一种表示,它具有从一个地点到另一个地点所必需的信息。
同样,我们需要一种方法来表示计算机存储和管理的数据,这种方法要能够捕捉信息的要素,而且必须采用便于计算机处理的形式。第2章介绍了二进制记数系统的基本概念,这一章将探讨如何表示和存储计算机管理的各种类型的数据。
目标
学完本章之后,你应该能够:

  • 区分模拟数据和数字数据。
  • 解释数据压缩和计算压缩率。
  • 解释负数和浮点数的二进制格式。
  • 描述ASCII和Unicode字符集的特征。
  • 执行各种类型的文本压缩。
  • 解释声音的本质和它的表示法。
  • 解释RGB值如何定义颜色。
  • 区分光栅图形和矢量图形。
  • 解释时间和空间视频压缩。

3.1 数据与计算机
没有数据,计算机就毫无用处。计算机执行的每个任务都是在以某种方式管理数据。因此,用适当的方式表示和组织数据是非常重要的。
首先,我们来区别一下术语数据和信息。虽然这两个术语通常可以互换使用,但分清它们还是有用的,尤其对计算来说更是如此。数据是基本值或事实,而信息则是用某种能够有效解决问题的方式组织或处理过的数据。数据是未组织过的,缺少上下文。信息则可以帮助我们回答问题(即“告知”)。当然,这种区别是相对于用户的需求而言的,但它却正是计算机在协助我们解决问题时所扮演的角色的本质。

**数据(data):基本值或事实。
信息(information):用有效的方式组织或处理过的数据。**

本章的重点是各种类型的数据的表示法。在后面的几章中,将讨论各种组织数据来解决特定类型问题的方法。
不久以前,计算机处理的几乎都是数字和文本数据,但现在它已经成为真正的多媒体设备,可以处理各种各样的信息。计算机可以存储、表示和帮助我们修改各种类型的数据,包括:

  • 数字
  • 文本
  • 音频
  • 图像和图形
  • 视频

这些数据最终都被存储为二进制数字。每个文档、图像和音频都将被表示为由0和1组成的字符串。这一章将依次探讨每种数据类型,介绍在计算机上表示这些数据类型的方式的基本思想。
如果不讨论数据压缩,就不能讨论数据表示法。所谓数据压缩,就是减少存储一段数据所需的空间。过去,由于存储的局限性,我们需要使数据尽可能地小。现在,计算机存储变得比较便宜了,但是我们有更迫切的理由来缩短数据,因为我们要与其他人共享数据。网站和它底层的网络具有固有的带宽限制,带宽定义了在固定时间内从一个地点传输到另一个地点的最大位数或字节数。

**多媒体(multimedia):几种不同的媒体类型。
数据压缩(data compression):减少存储一段数据所需的空间。
带宽(bandwidth):在固定时间内从一个地点传输到另一个地点的最大位数或字节数。**

压缩率说明了压缩的程度,是压缩后的数据大小除以原始数据大小的值。压缩率的值可以是位数、字符数或其他各种适用的单位,只要这两个值采用的单位相同即可。压缩率是一个0到1之间的数。压缩率越接近0,压缩程度越高。
数据压缩技术可以是无损的,即提取的数据没有丢失任何原始信息。数据压缩也可以是有损的,即在压缩过程中将丢失一些信息。尽管我们从来都不想丢失信息,但在某些情况下,损失是可以接受的。在处理数据表示法和压缩时,我们总要在精确度和数据大小之间做出权衡。

**压缩率(compression ratio):压缩后的数据大小除以原始数据大小的值。
无损压缩(lossless compression):不会丢失信息的数据压缩技术。
有损压缩(lossy compression):会丢失信息的数据压缩技术。**

3.1.1 模拟数据与数字数据
自然界的大部分都是连续的和无限的。实数直线图像是连续的,直线中的数值可以是无限大或无限小的。也就是说,给定任意的数,总可以找到比它大或比它小的数。两个整数之间的数字空间是无限的。例如,任何数都可以被均分。但是,世界并非只是数学意义上的无限。色谱是无限种色度的连续排列。现实世界中的对象在连续的无限空间中移动。理论上说来,可以给出你和墙之间的距离,但你却绝对无法真正到达那堵墙。
相反,计算机则是有限的。计算机内存和其他硬件设备用来存储和操作一定量数据的空间只有那么多。用有限的机器表示无限的世界,我们从来都没有成功过。然而我们的目标是使表示的世界满足我们的计算需要和视觉及听觉官能。我们想使自己的表示法能够满足所有作业。
表示数据的方法有两种,即模拟法和数字法。模拟数据是一种连续表示法,模拟它表示的真实信息。数字数据是一种离散表示法,把信息分割成了独立的元素。

**模拟数据(analog data):用连续形式表示的信息。
数字数据(digital data):用离散形式表示的信息。**

水银温度计是一种模拟设备。水银柱按温度的正比例在管子中升高。我们校准这个管子,给它标上刻度,以便能够阅读当前的温度,通常是一个整数,如华氏75度。但是,水银温度计升温时实际采用的是连续的方式。有时,实际温度是华氏74.568度,水银柱的确指在相应的位置,但即使我们的标记再详细,也不足以反映出这么细微的改变。请参阅图3-1。
模拟数据完全对应于我们周围连续无限的世界。因此,计算机不能很好地处理模拟数据。我们需要数字化数据,把信息分割成片段并单独表示每个片段。这一章中讨论的每种表示法都是把一个连续的实体分割成离散的元素,然后用二进制数字单独表示每个离散
元素。

数字化(digitize):把信息分割成离散的片段。
但为什么使用二进制呢?从第2章可以了解到,二进制只是众多等价的记数系统中的一员。那么能使用我们所熟悉的十进制吗?可以。事实上,采用十进制的计算机早就出现了。但是,现代计算机使用和管理的都是二进制数值,因为如果存储和管理数据的设备只需要表示两种数值之一,那么费用要小得多,而且也可靠得多。
此外,如果电信号只传输二进制数据,也易于维护。表示模拟信号的电平持续地上下波动,但是数字信号却只有高低两种状态,对应两个二进制数字。请参阅图3-2。

在沿线下降时,所有电信号(包括模拟信号和数字信号)都会降级。也就是说,由于环境影响,信号的电平会波动。问题是,当模拟信号降级时,信息就会丢失。由于任何电平都是有效的,所以不可能知道原始的信号状态,甚至不能知道该信号是否改变过。
另一方面,数字信号只在两个极端之间跳跃,被称为脉冲编码调制(PCM)。数字信号在信息丢失之前可以降级相当多,因为大于某个阈值的电平值都被看作高电平,小于这个阈值的电压值都被看作低电平。数字信号会被周期性地重新计时,以恢复到它的原始状态。只要在信号降级太多之前重新计时,就不会丢失信息。图3-3展示了模拟信号和数字信号的降级效应。

**脉冲编码调制(pulse-code modulation):电信号在两个极端之间跳跃的变化。
重新计时(reclock):在信号降级太多之前将它重置为原始状态的行为。**
3.1.2 二进制表示法
在开始单独介绍各种数据类型的表示法之前,要记住二进制的固有特性。一个位只能是0或1,没有其他的可能,因此,一个位只能表示两种状态之一。例如,如果我们要把食物分成甜的和酸的两类,那么只用一位二进制数字即可。可以规定,0表示食物是甜的,1表示食物是酸的。但是,如果要表示更多的分类(如辣的),一位二进制数字就不能胜
任了。
要表示多于两种的状态,需要多个位。两个位可以表示四种状态,因为两个位可以构成四种0和1的组合,即00、01、10和11。例如,如果要表示一辆汽车采用的是四种档(停车、发动、倒车和空档)中的哪一种,只需要两位二进制数字即可。停车由00表示,发动由01表示,倒车由10表示,空档由11表示。位组合与它们表示的状态之间的实际映射有时是无关的(如果你愿意,可以用00表示倒车档),然而有时这种映射是有意义的也是很重要的,我们将在本章后面的小节中讨论这一点。
如果要表示的状态多于四种,就需要两个以上的位。三位二进制数字可以表示8种状态,因为三位数字可以构成8种0和1的组合。同样,四位二进制数字可以表示16种状态,五位可以表示32种,依此类推。请参阅图3-4。注意,每列中的位组合都是二进制的。

一般说来,n位二进制数字能表示2n种状态,因为n位数字可以构成2n种0和1的组合。请注意,每当可用的位数增加一位,可以表示的状态的数量就会多一倍。
让我们把这个问题反过来。要表示25种状态,需要多少位?四位二进制数字是不够的,因为四位数字只能表示16种状态。至少需要五位二进制数字,它们可以表示32种状态。由于我们只需要表示25种状态,所以有些位组合没有有效的解释。
记住,即使技术上只需要最少的位数来表示一组状态,而我们也可能会多分配一些位数。计算机体系结构一次能够寻址和移动的位数有一个最小值,通常是2的幂,如8、16或32位。因此,分配给任何类型的数据的最小存储量通常是2的幂的倍数。

时间: 2024-10-20 09:11:29

《计算机科学概论》—第3章3.1节数据表示法的相关文章

《新编计算机科学概论》一本章小结

本章小结 虚拟机的概念有助于我们正确理解计算机的实质和计算机运算的实现途径,从而更好地进行计算机语言的研究和应用,包括了从基础的硬件层到应用层的不同层次结构的虚拟机. 计算机能直接执行用机器语言所编的程序.机器语言是由二进制代码表示的计算机器指令和数据组合而成.指令是用来指定计算机实现某种控制或执行某个运算的操作命令代码.一台计算机全部指令的集合,称为指令系统.不同的计算机有不同的指令系统. 从高级语言转换到真正可执行的机器语言有两类方法:编译和解释.这两种方式都能够将高级语言编写的源程序转换成

《新编计算机科学概论》一本章习题

本章习题 一.复习题 1. 试述数制的概念. 2. 列举出你所知道的数字系统. 3. 谈谈二进制.八进制和十六进制等数字表示方法各有什么优点和缺点. 4. 为什么使用二进制计算的时候会出现溢出? 5. 反码和补码相对于原码有什么优点?计算机中的数是用原码表示还是用反码.补码表示? 6. 汉字编码有哪几种?各自的特点是什么? 7. 图像是如何压缩存储的?哪一种图像占用空间最小,为什么? 8. ASCII码是什么编码?为什么国际上推行Unicode码? 9. 列举出你所知道的汉字输入码. 10. 尝

《计算机科学概论(第12版)》—第0章0.1节算法的作用

绪0论 绪论 计算机科学概论(第12版) 在开篇的这一章,我们探讨计算机科学所涉及的领域,介绍其历史背景,然后为我们的深入学习奠定基础. 本章内容 0.1 算法的作用 0.2 计算机器的由来 0.3 学习大纲 0.4 计算机科学的首要主题 计算机科学这门学科,是要为计算机设计.计算机程序设计.信息处理.问题的算法解决方案和算法过程本身等主题建立科学的基础.计算机科学既是当今计算机应用的支柱,又是今后计算基础设施的基础. 本书将详细介绍计算机科学,探索广阔的主题,包括构成大学计算机科学课程的大部分

《计算机科学概论》—第3章3.2节数字数据表示法

3.2 数字数据表示法数值是计算机系统最常用的数据类型.与其他数据类型不同的是,不必把数字数据映射到二进制代码.因为二进制也是一种记数系统,所以在数字数据和计算机存储的表示它们的二进制数值之间有种自然对应的关系.通常对正整数来说都是这样的.在第2章关于二进制系统和其他等价记数系统的讨论中,我们介绍了整数转换的问题.但是,还有其他关于数字数据表示法的问题需要考虑,整数不过是数字数据的一部分.这一节将讨论负数和非整数数值的表示法.3.2.1 负数表示法负数只是前面带有负号的数吗?也许吧.这当然是看待

《计算机科学概论(第12版)》目录—导读

版权 计算机科学概论(第12版) • 著 [美] J. Glenn Brookshear Dennis Brylow 译 刘 艺 吴 英 毛倩倩 责任编辑 杨海玲 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 内容提要 计算机科学概论(第12版) 本书是计算机科学概论课程的经典

《Google软件测试之道》—第2章2.2节测试认证

本节书摘来自异步社区<Google软件测试之道>一书中的第2章2.2节测试认证,作者[美]James Whittaker , Jason Arbon , Jeff Carollo,更多章节 2.2 测试认证 Patrick Copeland在本书的序中强调了让开发人员参与测试的难度.招聘到技术能力强的测试人员只是刚刚开始的第一步,我们依然需要开发人员参与进来一起做测试.其中我们使用的一个 关键方法就是被称为"测试认证"(译注:Test Certified)的计划.现在回过头

《计算机科学概论》—第1章1.2节计算的历史

1.2 计算的历史 计算的历史十分悠久,计算系统为什么成为今天这个样子是可以解释的.这一节讲述的故事中的人物和事件为我们开创了现在的天地,为开启激动人心的未来奠定了基础.我们分别描述了计算硬件和软件的历史,因为它们对计算系统进化为我们所用的层次模型有着不同的影响. 我们介绍历史时采用的是叙述性方式,没有正式地定义任何概念.在接下来的几章中,我们将定义这些概念,并且详细地研究它们.1.2.1 计算硬件简史 辅助人们进行各种计算的设备自古就有,迄今为止,它们还在不断进化中.让我们来简单浏览一下计算硬

《计算机科学概论》—第2章2.2节位置记数法

2.2 位置记数法 943这个数中有多少实体?也就是说,943这个数表示多少件实物?用初中术语来说,943是9个100加4个10加3个1,或者说,是900个1加40个1加3个1.那么,754中又有多少实体?700个1加50个1加4个1.对吗?也许正确,答案是由你使用的记数系统的基数决定的.如果这些数字是以10为基数的,或者说是十进制数,也就是人们日常使用的数制,那么上述答案是正确的.但在其他记数系统中,上述答案就错了. 记数系统的基数规定了这个系统中使用的数字量.这些数字都是从0开始,到比基数小

《计算机科学概论(第12版)》—第1章1.10节通信差错

*1.10 通信差错 当信息在一台计算机的各个部分之间来回传输,或在月球和地球之间来回传输,又或者只是被保存在存储器中时,最终检索到的位模式有可能和最原始的不一致.灰尘颗粒.磁记录面的油脂或者出了故障的电路,都可能使数据被错误地记录或读取.传输通道上的静电干扰可能会损坏部分数据.在某些技术条件下,普通的背景辐射(background radiation)可以改变存储在机器主存储器中的模式. 为了解决这样的问题,人们开发了许多编码技术来检测甚至校正错误.现在,由于这些技术被大规模地内置于计算机系统