计算机科学导论第三章-数据存储课件_第1页
计算机科学导论第三章-数据存储课件_第2页
计算机科学导论第三章-数据存储课件_第3页
计算机科学导论第三章-数据存储课件_第4页
计算机科学导论第三章-数据存储课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3数据存储

(DataStorage)

13数据存储(DataStorage)1教学目标

通过本章的学习,同学们应该能够:?

列出计算机中使用的五种数据类型.?

描述不同的数据如何以位模式存储在计算机中.?

描述整数如何以无符号格式存储在计算机中.?

描述整数如何以符号加绝对值格式存储.?

描述整数如何以二进制补码格式存储.?

描述实数如何以浮点格式存储在计算机中.?

描述文本如何通过各种不同的编码系统存储在计算机中.?

描述音频如何通过采样、量化和编码存储在计算机中.?

描述图像如何通过光栅和矢量图模式存储在计算机中.?

描述视频如何以图像随时间变化的表示来存储在计算机中.2教学目标通过本章的学习,同学们应该能够:?列出计算机中3-1引言

INTRODUCTION如今,数据以不同的形式出现,

如:数字、文本、音频、图像和视频(Figure3.1).

iFigure3.1不同类型的数据

计算机中使用术语“多媒体”

来定义包含数字、文本、图像、音频和视频的信息.33-1引言INTRODUCTION计算机内部的数据

Datainsidethecomputer所有计算机外部的数据都采用统一的数据表示法转换后存入计算机中,当数据从计算机输出时再还原回来。这种通用的格式称为位模式.位(为了表示数据的不同类型,采用位模式,一个序列bit)是存储在计算机中的最小单位,0或1.长度为8的位模式称为1个字节(byte).

Figure3.2位模式

书P29图3.2错误,16个位

4计算机内部的数据Datainsidethecompu不同数据类型的存储

5Figure3.3不同数据类型的存储5Figure3.3数据压缩

Datacompression更小的空间存储更多的数据

更短的时间下载更多的数据

存储或发送更少的位数(数据)

数据压缩

i数据压缩将在第15章讨论.6数据压缩Datacompression更小的空间存储更3-2存储数字

STORINGNUMBERS在存储到计算机内存中之前,数字被转换为二进制系统,如第二章所述.但是,这里还有两个问题需要解决:

1.如何存储数字的符号.2.如何显示十进制小数点.

73-2存储数字STORINGNU存储整数

Storingintegers?整数是完整的数字(即没有小数部分).

如134和?125是整数,而134.23和

?0.235则不是.?整数可被当作小数点位置固定:小数点固定在最右边.

因此,定点表示法用于存储整数,如图3.4所示.?在这种假设中,小数点是假设的,但是并不存储.

iFigure3.4整数的定点表示法

整数通常使用定点表示法存储在内存中.8存储整数Storingintegers?整数是完整的数无符号表示法

Unsignedrepresentation无符号整数就是没有符号的整数,范围介于0到无穷大.在n位存储单元中,可以存储的无符号整数为0~2n-1存储无符号整数的步骤:1.首先,将整数变成二进制数.2.如果二进制位数不足n位,则在二进制整数的左边补0,使它的总位数为n位.

如果位数大于n位,则无法存储,导致溢出。

9无符号表示法UnsignedrepresentationExample3.1

将7存储在8位存储单元中.解:首先将整数转换为二进制数(111)2.

左边加5个0使总位数为8位,即(00000111)2.

再将该整数保存在存储单元中.注意:右下角的2用于强调该整数是二进制的,并不存储在计算机中.10Example3.1将7存储在8位存储单元中.解:首先Example3.2

将258存储在16位存储单元中.解:首先将整数转换为二进制(100000010)2.

左边加7个0使总位数满足16位,

即(0000000100000010)2.

再将该整数存储在存储单元中.11Example3.2将258存储在16位存储单元中.解Example3.3

当译解作为无符号整数保存在内存中的位串00101011时,从输出设备返回什么?解:使用第2章的解题过程,

二进制整数转换为十进制无符号整数43.32+8+2+1=4312Example3.3当译解作为无符号整数保存在内存中的位假如存储大于存中,会发生溢出的情况24

?1=15.的整数到仅为4位的内Figure3.5无符号整数的溢出

13假如存储大于存中,会发生溢出的情况24?1=15无符号表示法的优势

因为不必存储整数的符号,无符号整数可以提高存储效率,所有分配的位单元都可以用来存储数字。

只要用不到负整数,都可以用无符号整数表示法。

14无符号表示法的优势因为不必存储整数的符号,无符号整数可以无符号整数的应用

?计数:可以从0或1开始增加

?寻址:地址是从0(存储器的第一个字节)开始到整个存储器的总字节数的正数。

?为其他数据类型排序:其他数据类型(文本、图像、音频、视频)等是以位模式存储的,可以翻译为无符号整数。

15无符号整数的应用?计数:可以从0或1开始增加?寻址:地址符号加绝对值表示法

Sign-and-magnituderepresentation在这种方法中,用于无符号整数的有效范围(0to2n

?1)被分成2个相等的子范围.前半部分表示正整数,后半部分表示负整数.Figure3.6符号加绝对值的表示法

i符号加绝对值表示法中,最左位定义整数的符号。

0表示正整数,1表示负整数.16符号加绝对值表示法Sign-and-magnituder符号加绝对值表示法

Sign-and-magnituderepresentation?在一个8位存储单元中,可以仅用7位表示数字的绝对值(不带符号)

?最大的整数值,仅是无符号最大数的一半。?在n位单元中,可存储的数字范围是:

-(2n-1-1)~(2n-1-1)

17符号加绝对值表示法Sign-and-magnituderExample3.4

用符号加绝对值格式表示法将存储单元中.+28存储在8位解:先把该整数转换成7位的二进制数.最左边位置为0,即存储为8位数.18Example3.4用符号加绝对值格式表示法将存储单元中Example3.5

用符号加绝对值格式表示法将

-28存储在8位存储单元中.解:先把该整数转换成7位的二进制数。

最左边位置为1,即存储为8位数.19Example3.5用符号加绝对值格式表示法将-28存Example3.6

将用符号加绝对值格式表示法存储的01001101复原成整数.解:

因为最左位是0,符号为正。

其余位(1001101)转换成十进制数

64+8+4+1=77加上符号后,该整数是+77.20Example3.6将用符号加绝对值格式表示法存储的01Example3.7

将用符号加绝对值格式表示法存储的10100001复原成整数

解:

因为最左位是1,符号为负。

其余位(0100001)转换成十进制数32+1=33加上符号后,该整数是?33.

错误:p32(书-17)

21Example3.7将用符号加绝对值格式表示法存储的10符号加绝对值表示法的应用

?符号加绝对值表示法不用于存储整数,而用于存储部分实数

?符号加绝对值表示法通常用于采样模拟信号,如音频。

22符号加绝对值表示法的应用?符号加绝对值表示法不用于存储整数二进制补码表示法

几乎所有的计算机都使用二进制补码表示法来存储位于n位存储单元中的有符号整数。

在补码表示法中,无符号整数的有效范围

(0~2n?1)被分为2个相等的子范围。第一个子范围用来表示非负整数(0和正),第二个子范围用于表示负整数.若n=4,范围是0000~1111,

分为两半,0000~0111和1000~1111,

按左负右正的常规交换。

(错:书P33)23二进制补码表示法几乎所有的计算机都使用二进制补码表示法来赋值给负和非负整数的位模式如图3.8所示.Figure3.8二进制补码表示法

i在二进制补码表示法中,最左位决定符号。

如果最左位是0,该整数为正

如果最左位是1,该整数为负

24赋值给负和非负整数的位模式如图3.8所示.Figure3反码

在介绍补码表示法之前,需要介绍两种运算

第一种称为反码或取一个整数的反码.?该运算可以应用到任何整数,无论是正的还是负的.?该运算简单反转各个位.即把0位变为1位,把1位变为0位

25反码在介绍补码表示法之前,需要介绍两种运算第一种称Example3.8

如何取整数00110110的反码?

26Example3.8如何取整数00110110的反码Example3.9

进行两次反码运算,就可以得到原先的整数.27Example3.9进行两次反码运算,就可以得到原先的整补码

第二种运算:称为二进制中的补码或取一个整数的补码。

该运算分为两步:

?首先,从右边复制位,直到有1被复制,

?接着,反转其余的位.

28补码第二种运算:称为二进制中的补码或取一个整数的补码。Example3.10

如何取整数00110100的补码?

29Example3.10如何取整数00110100的补码?Example3.11

如果进行2次补码运算,就可以得到原先的整数.

i另一种将一个整数进行补码运算的方法是,先对它进行1次反码运算,再加上1得到结果。第4章

30Example3.11如果进行2次补码运算,就可以得到原Example3.12用二进制补码表示法将28存储在8位存储单元中.解:该整数是正数,因此,把该整数从十进制转换为二进制后不再需要其他操作.注意,

3个多余的0加到该整数的左边使其成为8位.(错:书P34)

31Example3.12用二进制补码表示法将28存储在8位Example3.13

用二进制补码表示法将整数?28存储在8位存储单元中.解:

该整数是负数,因此,在转换成二进制后,

计算机对其进行二进制补码运算.32Example3.13用二进制补码表示法将整数?28存储Example3.14用二进制补码表示法将存储在8位存储单元中的00001101还原成整数.解:

最左位是0,因此,符号为正.该整数需要转换为十进制并加上符号即可.33Example3.14用二进制补码表示法将存储在8位存储Example3.15

用二进制补码表示法将存储在8位存储单元中的11100110还原成整数.解:最左位是1,因此符号为负.在整数转换成十进制前进行补码运算.34Example3.15用二进制补码表示法将存储在8位存储

i二进制补码表示法仅有1个0.Figure3.9二进制补码表示法的溢出

35i二进制补码表示法仅有1个0.Figure3.936比较

36比较存储实数

Storingreals实数是带有整数部分和小数部分的数字.例:23.7是一个实数,整数部分是23,小数部分是0.7.尽管固定小数点的表示法可以用于表示实数,但结果不一定精确或达不到需要的精度.

i带有很大的整数部分或者很小的小数部分的实数不应该用定点表示法存储.37存储实数Storingreals实数是带有整数部分和小Example3.16在十进制系统中,假定用一种定点表示法,右边2个数码,左边14个数码,总计16个数码.

如何表示十进制数1.00234?

该系统的实数精度就会受损,该系统把这个数字存储为1.00.38Example3.16在十进制系统中,假定用一种定点表示Example3.17在十进制系统中,假定用一种右边6个数码,左边10个数码,总共16个数码的定点表示法.

如何存储十进制数236154302345.00?

该系统的实数精度就会受损,

该系统把这个数字存储为6154302345.00整数部分比实际小了很多.39Example3.17在十进制系统中,假定用一种右边6浮点表示法

Floating-pointrepresentation用于维持正确度或精度的解决方法是使用浮点表示法.浮点表示法允许小数点浮动,小数点的左右可以有不同数量的数码,增加了可存储的实数范围.

iFigure3.9在浮点表示法中的三个部分

浮点表示法由3部分组成:符号、位移量、定点数

40浮点表示法Floating-pointrepresentExample3.18

在科学计数法中,定点部分在小数点左边只有1位,位移量是10的幂次。用科学计数法(浮点表示法)表示的十进制数

7,425,000,000,000,000,000,000.00这三部分为:符号(+),位移量(21),定点数(7.425).注意:位移量就是指数.

+7.425E2141Example3.18在科学计数法中,定点部分在小数点左Example3.19

用科学计数法表示数字

?0.0000000000000232解:将小数点移到数码2之后,如下所示:这三部分为:符号注意:这里指数是负的

(-)、位移量.(-14)、定点数(2.32)-2.32E-1442Example3.19用科学计数法表示数字?0.000Example3.20

用浮点格式表示数字

(101001000000000000000000000000000.00)2解:使用前例同样的方法,小数点前只保留一位数字.指数显示为32,实际上以二进制存储在计算机中。

43Example3.20用浮点格式表示数字(101001Example3.21

用浮点格式表示数字

?(0.00000000000000000000000101)2解:

小数点左边只留一个非零数码.44Example3.21用浮点格式表示数字?(0.000规范化

Normalization为了使表示法的固定部分统一,科学计数法(用于十进制)和浮点表示法

(用于二进制)都在小数点左边使用了唯一的非零数码,这称为规范化.十进制系统中该非零数码可能是1到9,

二进制系统中该非零数码是1.在下面,d

是非零数码,x

是一个数码,y

是0或1.45规范化Normalization为了使表示法的固定部分统二进制数规范化之后,只存储了该数的三部分信息,

符号,指数,尾数。+1000111.0101规范化后变为:

符号:用一个二进制位来表示(0或1)

指数:小数点移动的位数,使用余码表示法存储指数位

尾数:小数点右边的二进制数,定义了该数的精度。

注意:尾数不是整数,而是像整数那样存储的小数部分

在尾数中,如果在数字左边插入多余的0,值将会改变

而在真正的整数中,左边插入0,值不会改变

书P38错误

46二进制数规范化之后,只存储了该数的三部分信息,符号,指数,

i小数点和定点部分左边的位1并没有存储,

它们是隐含的.47i小数点和定点部分左边的位1并没有存储,它们是隐含的.余码系统

ExcessSystem指数:是有符号的数,即显示多少位小数点应该左移或右移的幂次.在余码系统中,正整数和负整数都可以作为无符号数存储.为了表示正整数或负整数,将正整数(称为一个偏移量)添加到每个数字中,将它们统一移到非负的一边.这个偏移量的值是2m?1

?

1,m是内存单元存储指数的大小.48余码系统ExcessSystem指数:是有符号的数,即Example3.22

可以用4位存储单元在数字系统中表示16个整数.在该范围中增加7个单位到每个整数中,可以统一把所有整数向右移,使其均为整数,而无需改变这些整数的相对位置,避免了相互调整,如图3-11所示.新系统称为余7码,或者偏移量为7的偏移表示法.Figure3.11余码表示法中的移位

49Example3.22可以用4位存储单元在数字系统中表示IEEE标准

Figure3.12浮点表示法的IEEE标准

50IEEE标准Figure3.12浮点表示法的IEEIEEE标准的规范

51IEEE标准的规范51Example3.23

写出十进制数5.75的余127码(单精度)表示法.解:a.

符号为正,所以S=0.b.十进制转换为二进制:5.75=(101.11)c.规范化:(101.11)22.2.d.E=2+127=129=(10000001)2=(1.0111)2

×使之成为2,M=0111.

需要在M的右边增加19个023位.a.该表示法如下所示:书P39错

存储在计算机中的数字是

0100000010111000000000000000000052Example3.23写出十进制数5.75的余127码Example3.24

写出十进制数–161.875的余127码(单精度)表示法.解:

符号为负,所以S=1.a.b.十进制转换为二进制:161.875=(10100001.111)2.c.规范化:(10100001.111)2=(1.0100001111)2

×27.d.E=7+127=134=(10000110)2

而M=(0100001111)2.a.该表示法如下所示:存储在计算机中的数字是

书P40错

1100001100100001111000000000000053Example3.24写出十进制数–161.875的余1Example3.25

写出十进制数解:–0.0234375的余127码(单精度)表示法a.

S=1(该数为负).b.十进制转换为二进制:0.0234375=(0.0000011)2.c.规范化:(0.0000011)2=(1.1)2

×2?6.d.E=–6+127=121=(01111001)2andM=(1)2.e.该表示法如下所示:存储在计算机中的数字是

1011110011000000000000000000000054Example3.25写出十进制数解:–0.023437Example3.26

位模式(11001010000000000111000100001111)2

以余127码格式存储于内存中.求该数字十进制计数法的值.解:a.

首位表示S,后8位表示E,剩下23位是M.b.符号为负号.c.位移量=E?127=148?127=21.d.将(1.00000000111000100001111)2

×221去规范化.e.二进制数是(1000000001110001000011.11)2.f.绝对值是2,104,378.75.g.该数字是?2,104,378.75.55Example3.26位模式(1100101000000存储0StoringZero带有整数和小数部分的实数设置为0的时候是0.0,无法用以上讨论的步骤存储.

为了处理这个特例,约定在这种情况下,符号、指数、尾数都设为0.56存储0StoringZero带有整数和小数部分的实数设3-3存储文本

STORINGTEXT在任何语言中,文本的片段是用来表示该语言中某个意思的一系列的符号。

例如,英语中使用26个符号(A,B,C,…,Z)表示大写字母,26个符号(a,b,c,…,z)表示小写字母,10个符号(0,1,2,…,9)表示数字字符,以及符号(.,?,:,;,…,!)表示标点.书P41错

另外一些符号(如空格blank、换行newline、制表符tab)被用于文本的对齐和可用性.573-3存储文本STORINGTE可以用位模式表示任何一个符号.换句话说,如四个符号组成的文本

“CATS”,

可以采用4个n位模式(n-bitpatterns)表示,任何一个模式定义一个单独的符号(图3.14).Figure3.14利用位模式表示符号

58可以用位模式表示任何一个符号.换句话说,如四个符号组成5959代码

Codes?ASCII:美国国家标准协会ANSI开发了一个被称为美国信息交换标准码ASCII的代码,该代码使用7位表示每个符号。

?Unicode:硬件和软件制造商联合起来共同设计了一种名为Unicode的代码,这种代码使用32位并能表示最大达232=4294967296个符号。

?

其他编码:最近几十年来,其他编码不断发展,鉴于Unicode的优势,这些编码不太流行。

见附录A60代码Codes?ASCII:美国国家标准协会ANSI开3-4存储音频

STORINGAUDIO音频表示声音或音乐.音频本质上与数字和文本是不同的.文本由可数的实体(文字)组成:可以数出文本中文字的数量.文本是数字数据digitaldata的一个例子.相反,音频是不可数的.音频是模拟数据analogdata的例子.即使能够在一段时间内度量所有的值,也不能把它全部存在计算机内存中,因为可能需要无限数量的内存单元.613-4存储音频STORINGAU图3.15显示了一个模拟音频信号随时间变化的本质

Figure3.15一个音频信号

62图3.15显示了一个模拟音频信号随时间变化的本质Figur采样

Sampling如果不能记录一段间隔的音频信号的所有值,至少可以记录其中的一些。

采样意味着在模拟信号上选择数量有限的点,来度量它们的值,并记录下来。

Figure3.16一个音频信号的采样

63采样Sampling如果不能记录一段间隔的音频信号的所量化

Quantization从每个样本测量得到的值是真实的值.这意味着要为每秒的样本存储40000个真实值.但是,为每个样本使用一个无符号的数(位模式)会更简便.量化指的是将样本的值截取为最接近整数值的一种过程.例如,如果实际的值为17.2,就可截取为17;

如果实际的值为17.7,就可截取为18.64量化Quantization从每个样本测量得到的值是真实编码

Encoding量化的样本值需要被编码成位模式.一些系统为样本赋正值或负值,另一些仅仅移动曲线到正的区间从而只赋正值.称每样本位的数量(位深度bitdepth)为B,每秒样本数为S,则需要为每秒的音频存储S×B位,该乘积称为位率R(bitrate).例如,如果使用每秒40,000个样本,每样本16位,位率是

R=40,000×16=640,000bitspersecond65编码Encoding量化的样本值需要被编码成位模式.声音编码标准

Standardsforsoundencoding当今音频编码的主流标准是MP3(MPEGLayer3的简写).该标准是用于视频压缩方法的MPEG(MotionPictureExpertsGroup运动图像专家组)标准的一个修改版.它采用每秒44100个样本以及每样本16位.结果信号达到705,600b/s(bitspersecond)的位率

再使用那些人耳无法识别的信息的压缩方法进行压缩.这是一种有损压缩,与无损压缩相反,参见第15章.66声音编码标准Standardsforsoundenc3-5存储图像

STORINGIMAGES

存储在计算机中的图像使用两种不同的技术:光栅图或矢量图.

光栅图Rastergraphics当需要存储模拟图像如照片时,就用到了光栅图或位图.一张照片由模拟数据组成,类似于音频信息.不同的是数据密度

(色彩)因空间变化,而不是因时间变化.这意味着数据需要采样.然而,这种情况下,采样通常被称作扫描.样本称为像素(代表图像的元素).673-5存储图像STORINGIMAG解析度Resolution类似音频采样,在图像扫描中,要决定对每英寸的方块或线条需要记录多少像素.在图像处理中的扫描率称为解析度.若解析度足够高,人眼不会看出在重现图像中的不连续.68解析度Resolution类似音频采样,在图像扫描中,要色彩深度Colordepth用于表现像素的位的数量,即色彩深度,依赖于像素的颜色是如何由不同的编码技术来处理的.对颜色的感觉是人眼如何对光线的响应.人眼有不同类型的感光细胞:一些响应红、绿、蓝三原色(也叫

RGB),而另一些仅仅响应光的密度.69色彩深度Colordepth用于表现像素的位的数量真彩色

True-Color用于像素编码的技术之一称为真彩色,使用24位来编码一个像素.每个三原色(RGB)都表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论