章节:数据表示——从我们的世界到电脑的世界
大家好!你有没有想过,你的电脑是怎样理解你正在看的照片、听的音乐,甚至是你现在正在阅读的文字呢?这可不是魔法!电脑有它自己一套独特的语言,而在这一章,我们将学习如何“说”这种语言。我们会一起探索各种信息——从一个简单的数字到一段复杂的影片——是如何被转化成电脑能够理解的格式。
理解这一点是信息及通讯科技(ICT)中一项非常基础的技能,这就像在学会阅读前,必须先学习字母表一样。让我们一起深入探索并解读数字世界吧!
1. 类比数据与数字数据:两个世界
在我们的世界里,大部分事物都是类比的。而在电脑的世界里,一切都是数字的。让我们来看看这代表什么。
什么是类比数据?
想象一下电灯的调光器,你可以平稳地转动旋钮,获得从完全关闭到完全亮起之间,无限种亮度的级别。
类比数据是连续的,意思是它在一个范围内可以有无穷多的数值。
真实世界例子:你的声音声波、房间的温度、真实日落中的颜色。
什么是数字数据?
现在,想想一个标准的电灯开关。它只有两个位置:开(ON)或关(OFF)。两者之间没有任何中间状态。
数字数据是离散的,意思是由固定数量的独立数值来表示。在电脑中,这被简化为两个数值:0(关闭)和1(开启)。每一个0或1都称为一个位元(英文binary digit的缩写)。
真实世界例子:书中的文字(由独立的字母组成)、足球比赛的比分、你今天走的步数。
不同世界间的转换
电脑无法理解真实世界中平稳、连续的性质。因此,我们需要将类比数据转换为数字数据,电脑才能够处理。
类比转数字转换(ADC):这是指我们捕捉真实世界的数据并将其转化为0和1。
例子:用手机麦克风录制你的声音。麦克风捕捉类比声波,手机的硬件将其转换为数字音频文件。数字转类比转换(DAC):这是指电脑将其0和1转换回我们可以体验的事物。
例子:播放MP3文件。电脑将数字数据发送到你的耳机或扬声器,这些设备将数据转换回你可以听到的类比声波。
为什么电脑“钟情”数字数据?
那么,为什么要这么麻烦呢?我们为什么不直接建造类比电脑呢?信息技术(IT)系统使用数字数据有几个主要原因:
可靠性:数字信号更具抗干扰能力(噪声)。即使“1”有点失真,它仍然是“1”,但类比信号的任何失真都会改变信息本身。
完美复制:你可以将数字文件复制数百万次,最后一个副本也会与第一个副本一模一样。想想复制MP3文件和复制旧式卡式录音带的区别——录音带的质量会随着每次复制而变差!
易于处理:电脑本质上是由数十亿个微型开关(晶体管)组成的,这些开关只能处于开启或关闭状态。这与数字数据的1和0完美匹配。
高效存储:大量的数字数据可以存储在非常小的物理空间中(例如在一张微型内存卡上)。
位元的力量
你使用的位元数量决定了你可以表示多少种不同的事物。关系很简单:使用 n 个位元,你可以创建 $$2^n$$ 种独特的组合。
1个位元可以表示 $$2^1$$ = 2 种事物(例如:开/关、真/假)
2个位元可以表示 $$2^2$$ = 4 种事物(例如:00, 01, 10, 11)
3个位元可以表示 $$2^3$$ = 8 种事物(例如:八种不同的颜色)
一组8个位元称为一个字节。一个字节可以表示 $$2^8$$ = 256 种不同的组合。
这个简单的原理是接下来所有内容的基础!
重点提示
真实世界的数据大多是类比(连续)的,但电脑只理解数字数据(离散值,即0和1)。我们在这两种形式之间进行转换,以便与电脑互动。电脑使用数字数据是因为它可靠、易于完美复制,并且处理和存储效率高。
2. 数字系统:电脑的语言
我们习惯使用十进制(基数为10)系统,它使用十个数字(0-9)。电脑则使用基于2的幂次的其他系统。让我们学习如何在这几种系统之间转换。别担心,这就像学习一种新的密码一样!
十进制(基数10)转二进制(基数2)
要将十进制数字转换为二进制,我们使用重复除以2的方法。
循序渐进指南:将十进制25转换为二进制
1. 将数字除以2,并记下余数。
2. 使用结果(商)作为你的新数字,并重复此过程。
3. 持续进行,直到结果为0。
4. 二进制数字是从底部向上读取的余数。
25 ÷ 2 = 12 余数 1
12 ÷ 2 = 6 余数 0
6 ÷ 2 = 3 余数 0
3 ÷ 2 = 1 余数 1
1 ÷ 2 = 0 余数 1
从底部向上读取余数,我们得到 11001。所以,$$25_{10} = 11001_2$$。
二进制(基数2)转十进制(基数10)
要将二进制转换为十进制,我们使用位值,这些位值是2的幂次。
循序渐进指南:将二进制11001转换为十进制
1. 写下二进制数字。
2. 在每个数字上方(从右到左),写下它的位值,从 $$2^0=1$$ 开始,然后是 $$2^1=2$$、$$2^2=4$$,依此类推。
3. 将所有为 1 的数字对应的位值加起来。
位值: 16 8 4 2 1
二进制数字: 1 1 0 0 1
现在,将有“1”的位值相加:$$16 + 8 + 1 = 25$$。所以,$$11001_2 = 25_{10}$$。成功了!
十六进制(基数16)
二进制数字会变得非常长,难以让人阅读。十六进制(或简称Hex)是一种基数为16的系统,用作二进制的速记。它使用数字0-9,然后用字母A-F来表示数值10-15。
十六进制数字:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (10), B (11), C (12), D (13), E (14), F (15)
二进制与十六进制之间的转换
这是最简单的部分!因为 $$16 = 2^4$$,所以每一个十六进制数字都恰好对应 四个 二进制数字。
记忆辅助:二进制转十六进制转换表
0000 = 0 | 0100 = 4 | 1000 = 8 | 1100 = C (12)
0001 = 1 | 0101 = 5 | 1001 = 9 | 1101 = D (13)
0010 = 2 | 0110 = 6 | 1010 = A (10) | 1110 = E (14)
0011 = 3 | 0111 = 7 | 1011 = B (11) | 1111 = F (15)
循序渐进指南:二进制转十六进制
将二进制数字11011010转换为十六进制。
1. 将二进制数字从右边开始,分成每4位一组。
1101 1010
2. 使用表格将每组4位元的数字转换为其十六进制等效值。
1101 = D
1010 = A
3. 组合结果。所以,$$11011010_2 = DA_{16}$$。
循序渐进指南:十六进制转二进制
将十六进制数字5F转换为二进制。
1. 独立取出每个十六进制数字。
5 F
2. 将每个数字转换为其4位元二进制组。
5 = 0101
F = 1111
3. 组合结果。所以,$$5F_{16} = 01011111_2$$。
你知道吗?十六进制常被用于网页设计中表示颜色。例如,#FF0000代表纯红色。前两位数字(FF)代表红色,接下来的两位(00)代表绿色,最后两位(00)代表蓝色。
重点提示
电脑使用二进制(基数2)。我们使用十进制(基数10)。十六进制(基数16)是长二进制数字的便捷速记方式。你必须能够在这三种系统之间进行转换。关键是记住转换方法:重复除法和位值。
3. 处理负数:二补数
到目前为止,我们只看过正数。但是电脑如何表示-25呢?它不能只是在1和0前面加上一个负号。最常用的方法称为二补数。
即使一开始觉得有点难,也别担心,这是一个你可以循序渐进学习的过程。我们将使用一个8位元数字作为例子。在一个8位元的带符号数字中,第一个位元(即最高有效位,简称MSB)告诉我们它的符号:0代表正数,1代表负数。
如何寻找二补数
循序渐进指南:使用8位元二补数表示-25
1. 从正数的二进制表示开始。
首先,找出+25的二进制。我们知道它是11001。在8位元中,我们加上前导零:$$00011001$$。
2. 翻转所有位元。
将每个0翻转为1,每个1翻转为0。这一步骤称为“一补数”。
由:0001 1001
转为:1110 0110
3. 结果加1。
将翻转后的数字加1。
1110 0110
+ 1
-----------------
= 1110 0111
所以,在8位元二补数中,-25 表示为 11100111。请注意,第一个位元是1,表示这是一个负数!
为什么要用这种特别的方法?
主要原因是它使电脑的减法变得异常简单。要减去一个数字,电脑只需加上它的负数版本。所以,$$10 - 5$$ 会变成 $$10 + (-5)$$。这意味着电脑的电路(算术逻辑单元,ALU)只需要知道如何进行加法运算,从而简化了其设计。
重点提示
二补数是电脑中表示负整数的标准方法。要找到一个数字的二补数,你首先要将它转换为正数的二进制形式,然后翻转所有位元,再加1。
4. 二进制算术:电脑如何计算
现在我们知道如何表示正数和负数了,接下来让我们看看电脑是如何进行简单计算的。
二进制加法
二进制加法遵循四个简单的规则:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0,并向前一位进位1。
例子:将9 (1001) 和 5 (0101) 相加
1 (进位)
1 0 0 1 (9)
+ 0 1 0 1 (5)
--------------
1 1 1 0 (14)
让我们验证一下:8+4+2 = 14。没错!
使用二补数进行二进制减法
正如我们之前提到的,电脑在减法上会“简化步骤”。要计算 A - B,电脑实际上会执行 A + (-B),其中 -B 是 B 的二补数。
例子:使用8位元二补数计算 9 - 5
1. 表示数字:
+9 = 0000 1001
+5 = 0000 0101
2. 寻找你要减去的数字(-5)的二补数:
+5 = 0000 0101
翻转:1111 1010
加1:1111 1011(这就是-5)
3. 将第一个数字和二补数结果相加:
1 1 1 1 1 (进位)
0000 1001 (9)
+ 1111 1011 (-5)
-----------------
(1)0000 0100 (4)
我们得到答案0000 0100,即4。请注意,最后有一个额外的“进位”位元。在使用二补数进行减法时,我们只需忽略这个最终的进位位元。
溢出错误
电脑使用固定数量的位元来存储数字(例如8位元、16位元)。如果计算结果太大而无法容纳怎么办?这称为溢出错误。
快速复习:数字范围
一个n位元空间可以容纳一定范围的数字。例如,使用8位元二补数:
最小的数字是-128 ($$-2^{7}$$)
最大的数字是+127 ($$2^{7} - 1$$)
溢出错误例子
让我们用8位元来相加100 + 50。结果应该是150。
100 = 0110 0100
50 = 0011 0010
1 (进位)
0110 0100 (100)
+ 0011 0010 (50)
-----------------
1001 0110
我们得到的答案是10010110。看看第一个位元!它是1,这表示电脑认为这是一个负数。我们将两个正数相加,却得到了一个负数结果。这明显是一个溢出错误的迹象。数字150太大,无法放入一个8位元的带符号整数中。
避免常犯错误
溢出只会发生在以下情况:
你将两个正数相加,而结果的符号位元是1(负数)。
你将两个负数相加,而结果的符号位元是0(正数)。
将一个正数和一个负数相加绝不会导致溢出。
重点提示
电脑使用简单的规则执行加法,并透过加上二补数来处理减法。当计算结果超出可用位元数所能存储的值范围时,就会发生溢出错误。
5. 字符表示法:从“A”到“字”
数字很棒,但是文字呢?电脑是如何存储字母“A”或字符“?”的呢?答案很简单:每个字符都被分配一个唯一的二进制数字。这些分配在称为字符集的标准中定义。
ASCII(美国信息交换标准码)
这是最早且最简单的标准之一。
它使用7位元,可以表示 $$2^7 = 128$$ 种不同的字符。
这足以表示所有英文大写和小写字母、数字0-9以及常用的标点符号。
后来,“延伸ASCII”使用8位元($$2^8 = 256$$ 个字符)来添加一些欧洲语言的符号和字符。
ASCII的问题:256个字符远不足以表示世界上所有语言的字符!
大五码(Big-5)和国标码(GB)
为了解决中文的问题,创建了不同的字符集。
大五码(Big-5):台湾和香港常用的一种标准,用于表示繁体中文字符。
国标码(GB):中国大陆常用的一种标准,用于表示简体中文字符。
这些的问题:这些系统可能会产生冲突。一个使用大五码编码的文档,在预期使用国标码的系统上会显示为乱码。这造成了很大的混淆。
万国码(Unicode)
万国码是现代的通用解决方案。
它的目标是为每种语言中的每个字符提供一个唯一的数字,无论使用什么平台或程序。
它可以表示超过140,000个字符,包括现代和历史文字、符号,甚至表情符号!😊
UTF-8是实现万国码最常见的方式,并且是全球资讯网(World Wide Web)上主流的字符编码。
万国码通过为所有人创建一个庞大、通用的字符集,解决了标准冲突的问题。
重点提示
字符由字符集中定义的唯一二进制代码表示。ASCII是早期用于英文的标准。大五码(Big-5)和国标码(GB)是为中文开发的,但可能产生冲突。万国码(Unicode)是现代的通用标准,旨在包含每种语言中的每个字符,解决了这些冲突。一个字符集使用的位元越多,它能表示的字符就越多。
重要提示:你的考试需要你知道这些标准的目的,而不是记住任何字母的特定二进制代码!
6. 数字化多媒体:将图像、声音和影片变为现实
我们已经讲了数字和文字,那么我们每天使用的丰富媒体呢?所有多媒体也必须进行数字化(转换为二进制)。
表示图像
最常见的数字图像类型是位图(或称点阵图)。
想象图像是一个网格。网格中的每个方格都是一个像素(图像元素)。
电脑存储每个像素的颜色值。
分辨率:网格中的像素数量(例如,1920 x 1080)。更高的分辨率意味着更清晰的图像,但文件大小会更大。
色深:用于存储每个像素颜色的位元数。更多的位元意味着更多可能的颜色,但文件大小也会更大。例如,24位元“真彩色”使用8位元表示红色,8位元表示绿色,8位元表示蓝色,可以表示 $$2^{24}$$ (约1670万)种不同的颜色!
图像文件格式
BMP(位图):无压缩。存储每个像素的数据。这意味着完美的图像品质,但文件大小非常大。
JPG/JPEG(联合图像专家组):使用有损压缩。它巧妙地丢弃了人眼最不容易察觉的一些图像数据。这大大减小了文件大小,非常适合网页上的照片。然而,部分品质会永久损失。
PNG(可携带式网络图像):使用无损压缩。它找到了巧妙的方法来更有效地存储像素数据,而不会丢弃任何数据。品质是完美的(如同BMP),但文件大小较小。它非常适合图形、标志和需要透明背景的图像。
表示声音
要将连续的声波数字化,需要使用一种称为抽样(或采样)的过程。
声波的高度(振幅)以每秒数千次的固定间隔进行测量。
每个测量值,或称“样本”,都以二进制数字存储。
当你播放声音时,电脑读取这些数字并生成一个声波,这个声波与原始声波非常接近。
声音文件格式
WAV(波形音频文件):无压缩音频。它存储每个样本的值。这提供了卓越的录音室级别品质,但文件非常大(一分钟音乐约10MB)。
MP3(MPEG音频层-3):使用有损压缩。就像图像的JPG一样,它会移除人类最不可能听到的部分声音。这大大减小了文件大小(一分钟音乐约1MB),使其非常适合便携式音乐播放器和流媒体。
表示影片
影片比你想象的要简单:它只是一系列非常快速显示的图像(称为影格或帧),并结合了一条音轨。
帧率(每秒影格数,或fps)决定了运动的流畅度。常见的帧率是24、30和60 fps。
影片文件几乎总是经过压缩的,因为未压缩的影片数据量非常庞大。
影片文件格式
AVI(音频视频交错):一种较旧的容器格式。它可以容纳以多种不同方式压缩的影片和音频。文件大小差异很大。
MPEG-4(或MP4):一种现代标准,使用非常高效的方法进行高度压缩。它能在相对较小的文件大小下提供良好的影片品质,使其成为在线影片(例如在YouTube上)和移动设备最流行的格式。
文件格式
TXT(纯文本):只存储字符本身(使用ASCII或万国码)。没有粗体、斜体或字体大小等格式。文件大小非常小。
PDF(可携带式文件格式):以固定版面存储文字、字体、图像和格式。文件在任何电脑上看起来都会一样,这是它的主要优点。
DOCX / ODT:这些是文字处理器(如Microsoft Word的DOCX和LibreOffice Writer的ODT)使用的复杂格式。它们存储文字、格式信息、图像、表格等等。
重点提示
所有多媒体都是数字化的。图像是像素的网格。声音透过抽样声波来捕捉。影片是一系列带有音频的图像影格。文件格式使用不同的压缩技术来管理文件大小。无损压缩在不损失品质的情况下减小大小(PNG)。有损压缩使文件小得多,但会永久移除一些数据(JPG、MP3)。