第二部分 信息层
第2章 二进制数值与计数系统
2.1 数字与计算
- 数字:抽象数学系统的一个单位,服从算术法则。
- 自然数:0或通过在0上重复加1得到的任何数。
- 负数:小于0的数,是在相应的正数前加上负号得到的数。
- 整数:自然数、自然数的负数或0。
- 有理数:整数或两个整数的商(不包括被0除的情况)。
2.2位置计数法
- 基数:记数系统的基本数值,规定了这个系统中使用的数字量和数位位置的值 计数系统的基数规定了这个系统中使用的数字量。从0开始,到比基数小1的数字结束。
- 位置计数法:一种表达数字的系统,数位按顺序排列,每个数位有一个位值,数字的值是每个数位和位值的乘积之和例:943可以表示为:9×x2+4×x1+3×x0 其中x表示基数。
2.2.1二进制、八进制和十六进制
在以比10大的数为基数的记数系统中,我们把字母用作数字。A表示10,B表示11,C表示12,以此类推。
2.2.2其他记数系统中的运算
-
加法
十进制中,1+1=2,如果相加的两个数的和大于基数,例如1+9.因为没有表示10的符号,所以重复使用已有的数字,并且利用他们的位置。最右边的值将回0,它左边的位置上发生进位。
二进制:1+1等于0加上一个进位。
其他记数系统以此类推 -
减法
借位借的是基数的一次幂。十进制中,借的是10,二进制中借的是2,以此类推
2.2.3以2的幂为基数的记数系统
- 二进制转八进制
要从最右边的二进制数位开始,每三个数位一组,把每组转换成相应的八进制数。 - 二进制转十六进制
每四个一组,其他同上。
能这样快速转换的原因是8和16都是2的幂。
2.2.4把十进制转换成其他数制的数
While(商不是0)
用新基数除这个十进制数
用余数作为答案左边的下一个数
用商代替这个十进制数
例:把十进制的2748转换成十六进制
2748/16=171 … … 12 余数12是十六进制中的第一位数,由C表示
171/16=10 … … 11
10/16=0 … … 10
所以答案是ABC
2.2.5二进制数值与计算机
- 二进制数字:二进制技术系统
- 位:二进制数字的简称。
- 字节:8个二进制位
- 字:一个或多个字节,字中的位数称为计算机的字长
例如,20世纪70年代晚期的IBM370体系结构中有半字(2字节或16位)、全字(4字节)和双字(8字节)。
第三章 数据表示法
3.1数据与计算机
数据:基本值或事实
信息:用有效的方式组织或处理过的数据
数据是未组织过的,缺少上下文。信息则可以帮助我们回答问题(即“告知”)。这种区别是相对于用户的需求而言的,但它却正是计算机在协助我们解决闻太师所扮演的角色的本质。
-
计算机现已是多媒体设备。可以存储、表示和帮助我们修改各种类型的数据,包括
- 数字
- 文本
- 音频
- 图像和图形
- 视频
- 数据压缩:减少存储一段数据所需的空间。
- 带宽:在固定时间内从一个地点传输到另一个地点的最大位数或字节数。
-
压缩率:压缩后的数据大小除以原始数据的大小的值。
- 压缩率的值可以是位数、字符数或其它各种适用的单位,只要这两个值的单位相同。压缩率是一个从0到1的数。压缩率越接近0,压缩程度越高。
- 无损压缩:不会丢失信息的数据压缩技术。
- 有损压缩:会丢失信息的数据压缩技术。
3.1.1模拟数据与数字数据
- 模拟数据:用连续形式表示的信息。 模拟它表示的真实信息。
- 数字数据:用离散形式表示的信息。 把信息分割成了独立的元素。
- 数字化:把信息分割成离散的片段。
- 脉冲编码编制:电信号在两个极端之间跳跃的变化。
- 重新计时:在信号降级太多之前将它重置为原始状态的行为。
采用二进制费用小得多,而且也可靠的多。在沿线下降时,所有电信号都会降级。所以电平会波动。但是当模拟信号降级时,信息就会丢失。由于任何电平都是有效的,所以不能知道原始的信号状态,甚至不能知道信号是否改变过。
另一方面,数字信号因为大于某个阈值的电平值都被看做高电平,小于这个阈值都被看做低电平。所以它在信号丢失之前可以降级相当多。数字信号会被周期性地重新计时,只要在降级太多之前重新计时就不会丢失信息。
3.1.2二进制表示法
n位二进制数字能表示2n种状态。25种状态至少需要5位二进制数字。但我们只需要表示25种,所以有些位组合没有有效的解释。 即使技术上只需要最少的位数来表示一组状态,也可能会多分配一些位数。计算机体系结构一次能够寻址和移动的位数有一个最小值,通常是2的幂数,因此,分配给任何类型数据的最小存储量通常是2的幂的倍数。
3.2数字数据表示法
3.2.1负数表示法
- 符号数值表示法:符号表示数所属的分类(正数或负数)、值表示数的量值的数字表示法。
但是,在计算机中+0和-0两种表示法会引起不必要的麻烦。 - 定常量数
如果只允许用定量的数值,那么可以用一半数表示正数,另一半数表示负数,符号由数的量值决定。
例如,假定能够表示的最大十进制数是99,那么可以用1到49表示1到49,50到99表示负数-50到-1。
5051…… 99 0 1 ……49
|---|----------|----|----|-----------|
-50-49…… -1 0 1 ……49
十进制补码:一种负数表示法,负数I用10的k次幂减I表示
例如:-(3)=102-3=97
二进制补码
假定数字只能用八位表示,-(2)=27-2=-126
十进制126用八进制表示是176,用二进制表示是11111110,左边多了一个“1”。因为这是一个负数,最左边的1表示这是负数。
更简单的方式计算二进制补码:将每一位取反再加一
- 数字溢出
溢出:给结果预留的位数存不下计算出的值的状况。
如果使用八位来存储每个值,那么127加3的结果将溢出:01111111+00000011=10000010
10000010表示-126而不是+130.但是,如果表示的不是负数,这个结果将是正确的。
溢出是把无限的世界映射到有限的机器上会发生的典型问题。
3.2.2实数表示法
在二进制中,小数点右侧的位置是二分位(2-1或二分之一)、四分位,以此类推。
浮点表示法:标明了符号、尾数和指数的实数表示法。
任何实值都可以由符号、尾数和指数这三个属性描述。十进制:符号×尾数×10exp
正指数将把小数点向右移,负指数往左移。
148.69=14869×10-2
155000.00=155×103
二进制:符号×尾数×2exp
将十进制转换成其他数制,转换小数部分与转换整数部分类似。只不过是用新基数乘。乘法的进位将成为答案右边的下一个数字……
例:0.75×2=1.50
0.50×2=1.00
因此,十进制中的0.75是二进制中的0.11
科学计数法 12001.23=1.200123E+4
3.3文本表示法
字符集:字符和表示它们的代码的清单。
3.3.1ASCII字符集
最初,它用7位表示128个不同的字符。每个字节中的第八位最初被用作校验位。之后它用8位表示256个字符。这8位版本的正式名字是Latin-1扩展ASCII字符集。
P45图3-5中前32个ASCII字符没有简单的字符表示法,不能输到屏幕上。这些字符是为特殊用途保留的
3.3.2Unicode字符集
ASCII字符集足够表示英语,但是却无法满足国际需求,于是Unicode字符集出现了。Unicode把ASCII字符集作为了一个子集。Unicode字符集被设计为ASCII的超集。Unicode的前256个字符与扩展ASCII字符集完全一样。
3.3.3文本压缩
-
关键字编码:用单个字符代替常用的单词
- 用来对关键字编码的字符不能出现在原始文本中。
- 大小写不同不是同一个单词。
- 不要对只有一个字符的单词编码,没有意义。
关键字编码的一个扩展是用特殊字符代替文本中的特定模式。如单词的前后缀。
-
行程长度编码 (迭代编码):把一系列重复字符替换为它们重复出现的次数。 如果用星号作为标志字符
AAAAAAA=*A7 -
赫夫曼编码:用变长的二进制串表示字符,使常用的字符具有较短的编码。
用于表示一个字符的位串不会是表示另一个字符的位串的前缀。
3.4音频数据表示法
要在计算机上表示音频数据,必须数字化声波,把他分割成离散的、便于管理的片段。
真正数字化声音的模拟表示法。采集表示声波的电信号,并用一系列离散的数值表示它。模拟信号是随电压连续变化的。要数字化这种信号,需周期性地测量信号的电压,并记录合适的数值,这一过程称为采样,最后得到的是表示不同电平的一系列数字。
用存储的电压值创建一个新的连续电信号,可以使声音再生。假设原始信号中的电平是均匀地从一个存储的电压值变化到下一个电压值的。如果在短时期内采到足够多的样本,那么这种假设是合理的。但采样过程会丢失信息。
一般来说,采样率在每秒40000次左右就足够创建合理的声音复制品。低于这个值,会失真。高于这个值达到某种程度后,额外的数据都是无关的,因为人耳分辨不出其中的差别。声音的整体效果受到声音的质量、声音的类型和人的听力等多方面因素的影响。
塑胶唱片是声波的模拟表示法。电唱机的唱针在唱片的螺旋形凹槽中上下伸缩模拟了表示声音的信号的电压变化。
激光唱片(CD)存储了数字化的音频信息。CD的表面是用显微镜可见的凹点表示二进制数字。低强度的激光指向唱盘。唱盘表面光滑,激光反射强烈,表面由凹痕,反射就比较少。接收器分析反射的强度,生成适当的二进制数字串,这是信号被数字化后存储的数字电压值。该信号将被重现,并发送给扬声器。
3.4.1音频格式
在多种流行的音频数据格式中,比如WAV、AU、AIFF、VQF、MP3等,处于统治地位的是MP3。
3.4.2MP3音频格式
MP3是MPEG-2 audio layer 3的缩写,MPEG是Moving Picture Experts Group(运动图像专家组)的缩写。
MP3格式使用有损压缩和无损压缩两种压缩方法。首先,将分析频率展开,与人类心理声学(研究耳朵和大脑之间的相互关系)的数学模型进行比较,舍弃人类听不到的信息后,用赫夫曼编码进一步压缩得到的位流。
3.5图像与图形表示法
3.5.1颜色表示法
RGB其实是三个数字,说明每种元素的相对份额。
用于表示颜色的数据量称为色深度,通常用表示元素的位数来表示色深度。
增强彩色指色深度为16位的颜色,RGB值中的每个数字由5位表示,剩下的一位有时用于表示透明度。
真彩色指色深度为24位的颜色,RGB中的每个数字由8位表示,即每个数所属的范围是0-255,这样能够生成1670万种以上的颜色。
24位真彩色提供的颜色比人眼能够分辨的颜色多。此外,显示器能显示的颜色也受限于特定的色深度。为了使显示器显示的颜色减少到256色,程序指定的任何颜色都会被映射到硬件能够显示的调色板中与之最接近的一种颜色。
3.5.2数字化图像与图形
像素:用于表示图像的独立点,代表图像的元素。
分辨率:用于表示图像的像素个数。
光栅图形格式:逐个像素存储图像信息的格式。目前流行的有位图(BMP)、GIF和JPEG。
- 位图文件:最直接的图形表示之一。除了一些管理细节,只包括图像的像素颜色值,按照从左到右,从上到下的顺序存放。虽然支持24位的真彩色,但是指定色深度,以减小文件。
- GIF
GIF把图像中可用的颜色数量限制在256种颜色。但不同的GIF可以由包含256种颜色的不同颜色集构成。这种技术叫做索引颜色。
GIF文件最适合用于颜色较少的图形和图像,因此,它是存放线条图像的首选格式。有一种GIF格式版本还可以通过存储一系列能在浏览器这样的程序中连续显示的图像来定义动画。 - JPEG 人眼对亮度和颜色渐变比对它们的迅速改变敏感。JPEG格式保存了短距离内色调的平均值。JPEG格式被看做存储照片颜色图像的首选格式。
- PNG
PNG图像的压缩效果通常比GIF图像的更好,提供的色深度范围也更广。但是PNG不支持动画,也不像GIF那样广受支持。
3.5.3图形的矢量表示法
矢量图形:用线段和几何形式表示图像的方法。 矢量图形不适用于表示真实世界的图像。适用于艺术线条和卡通绘画。
3.6视频表示
视频编译码器:用于缩减电影大小的方法。编译码器表示压缩器/解压缩器
大多数编译码器是面向块的,视频的每个帧将被分成一组矩形块。各个编译码器的不同之处在于如何对这些块编码。有些用软件,有些用硬件。
时间压缩 :根据连续帧之间的差别压缩电影的技术。关键帧是比较帧之间的差别的参照物,它的完整图形都会被保存。连续的图像只保存改变的部分(增量帧)。
空间压缩基于静态图像的压缩技术的电影压缩技术。
删除一个帧中的冗余信息。把颜色相同的像素聚集在块中,存储的是块的颜色和坐标。