




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
13数据存储(DataStorage)
*2列出计算机中使用的五种数据类型.
描述不同的数据如何以位模式存储在计算机中.
描述整数如何以无符号格式存储在计算机中.描述整数如何以符号加绝对值格式存储.
描述整数如何以二进制补码格式存储.
描述实数如何以浮点格式存储在计算机中.
描述文本如何通过各种不同的编码系统存储在计算机中.
描述音频如何通过采样、量化和编码存储在计算机中.
描述图像如何通过光栅和矢量图模式存储在计算机中.
描述视频如何以图像随时间变化的表示来存储在计算机中.教学目标通过本章的学习,同学们应该能够:*33-1引言INTRODUCTION如今,数据以不同的形式出现,如:数字、文本、音频、图像和视频(Figure3.1).Figure3.1不同类型的数据计算机中使用术语“多媒体”定义包含数字、文本、图像、音频和视频的信息.
i*4计算机内部的数据Datainsidethecomputer所有数据都采用统一的数据表示法转换后存入计算机,当数据从计算机输出时再还原回来。这种通用的格式称为位模式.Figure3.2位模式位(bit)是存储在计算机中的最小单位,0或1.为了表示数据的不同类型,采用位模式.一个序列长度为8的位模式称为1个字节(byte).书P29图3.2错误,16个位*5Figure3.3不同数据类型的存储*不同类型的数据可以按照相同的位模式存储存储器仅关心将数据按位模式存储将位模式解释为何种数据类型,则由程序负责6数据压缩Datacompression数据压缩将在第15章讨论.
i更小的空间存储更多的数据更短的时间下载更多的数据存储或发送更少的位数(数据)数据压缩*73-2存储数字STORINGNUMBERS在存储到计算机内存中之前,数字被转换为二进制系统,如第二章所述.两个问题需要解决:如何存储数字的符号.如何显示十进制小数点.*8存储整数Storingintegers整数是完整的数字(即没有小数部分).
如134和−125是整数,而134.23和−0.235则不是.整数可被当作小数点位置固定:小数点固定在最右边.
因此,定点表示法用于存储整数,如图3.4所示.在这种假设中,小数点是假设的,但是并不存储.Figure3.4整数的定点表示法整数通常使用定点表示法存储在内存中.
i*9无符号表示法Unsignedrepresentation无符号整数是没有符号的整数,范围:0~无穷大.
在n位存储单元中,可以存储的无符号整数:0~2n-1存储无符号整数的步骤:首先,将整数变成二进制数.若二进制位数不足n位,则在左边补0,达到n位.若二进制位数大于n位,则无法存储,导致溢出.*10Example3.1将7存储在8位存储单元中.解:首先将整数转换为二进制数(111)2左边加5个0使总位数为8位,即(00000111)2再将该整数保存在存储单元中.注意:右下角的2用于强调该整数是二进制的,
并不存储在计算机中.*11Example3.2将258存储在16位存储单元中.解:首先将整数转换为二进制(100000010)2
左边加7个0使总位数满足16位,即(0000000100000010)2
再将该整数存储在存储单元中.*12Example3.3当译解作为无符号整数保存在内存中的位串00101011时,从输出设备返回什么?解:使用第2章的解题过程,二进制整数转换为十进制无符号整数43.32+8+2+1=43*13假如存储大于24−1=15的整数到4位内存中,会发生溢出的情况.Figure3.5无符号整数的溢出*14无符号表示法的优势因为不必存储整数的符号,无符号整数可以提高存储效率所有分配的位单元都可以用来存储数字。只要用不到负整数,都可以用无符号整数表示法。*15无符号整数的应用计数:可以从0或1开始增加寻址:引用1个存储器的地址,地址从0开始到整个存储器的总字节数的正数。为其他数据类型排序:其他数据类型(文本、图像、音频、视频)等都是以位模式存储的,可以翻译为无符号整数。*16符号加绝对值表示法(原码)Sign-and-magnituderepresentation在这种方法中,用于无符号整数的有效范围(0~2n−1)被分成2个相等的子范围.前半部分表示正整数,后半部分表示负整数.Figure3.6符号加绝对值的表示法符号加绝对值表示法中,最左位定义整数的符号。0表示正整数,1表示负整数.
i*17在一个8位存储单元中,可以仅用7位表示数字的绝对值(不带符号)最大的整数值,仅是无符号最大数的一半。在n位单元中,可存储的数字范围是:-(2n-1-1)~(2n-1-1)
符号加绝对值表示法Sign-and-magnituderepresentation*18Example3.4用符号加绝对值格式表示法将+28存储在8位存储单元中.解:先把该整数转换成7位二进制数.最左边位置为0,即存储为8位数.*19Example3.5用符号加绝对值格式表示法将-28存储在8位存储单元中.解:先把该整数转换成7位二进制数。最左边位置为1,即存储为8位数.*20Example3.6将用符号加绝对值格式表示法存储的01001101复原成整数.解:因为最左位是0,符号为正。其余位(1001101)转换成十进制数64+8+4+1=77加上符号后,该整数是+77.*21Example3.7将用符号加绝对值格式表示法存储的10100001复原成整数解:因为最左位是1,符号为负。其余位(0100001)转换成十进制数32+1=33加上符号后,该整数是−33.错误:p32(书-17)*22符号加绝对值表示法的溢出在n位单元中,可存储的数字范围是:-(2n-1-1)~(2n-1-1)有两个0,正0(0000)和负0(1000)P33错误,负数溢出错误,图3-7(b)响应为-4,1100*23符号加绝对值表示法的应用现代计算机不用原码存储整数加、减运算不方便0的表示不唯一符号加绝对值表示法用于存储部分实数符号加绝对值表示法通常用于采样模拟信号,如音频。(进行转换简单,不涉及数字运算)*24二进制补码表示法使用二进制补码表示法来存储有符号整数。在补码表示法中,无符号整数的有效范围(0~2n−1)被分为2个相等的子范围。第一个子范围用来表示非负整数(0和正),第二个子范围用于表示负整数.若n=4,范围是0000~1111,分为两半,0000~0111和1000~1111,按左负右正的常规交换。(错:书P33)*25Figure3.8二进制补码表示法在二进制补码表示法中,最左位决定符号。如果最左位是0,该整数为正如果最左位是1,该整数为负
i赋值给负整数和非负整数的位模式如图3.8所示.*26反码运算介绍补码表示法之前,需要介绍两种运算
反码运算:该运算可以应用到任何整数
无论是正的还是负的.该运算简单反转各个位.
即把0位变为1位,把1位变为0位*27Example3.8如何对整数00110110进行反码运算?*28Example3.9进行2次反码运算,就可以得到原数.*29补码运算补码运算分为两步:第一步,从右边复制位,直到有1被复制第二步,反转其余的位*30Example3.10如何对整数00110100进行补码运算?*31Example3.11如果进行2次补码运算,就可以得到原数.另一种将一个整数进行补码运算的方法是,先对它进行1次反码运算,再加上1得到结果。第4章
i*32二进制补码的存储第一步,将整数的绝对值转为二进制第二步,二进制对齐到n位。不足n位,左侧补0;超过n位,溢出。第三步,判断正负。如果是正数或0,原样存储;若是负数,取其补码存储(通过补码运算得到)*33Example3.12用二进制补码表示法将28存储在8位存储单元中.解:该整数是正数,故把该整数从十进制转换为二进制后不再需要其他操作.注意:3个0加到该整数的左边使其成为8位.(错:书P34)*34Example3.13用二进制补码表示法将−28存储在8位存储单元中解:该整数是负数,因此,在转换成二进制后,对其进行二进制补码运算.*35译码二进制补码第一步,判断符号位。如果最左位为1,取其补码;如果最左位为0,保持不变。第二步,将二进制转换为十进制数。第三步,确定正负号。如果最左位为1,取负号;如果最左位为0,取正号。*36Example3.14用二进制补码表示法将存储在8位存储单元中的00001101还原成整数.解:最左位是0,因此,符号为正.该整数需要转换为十进制并加上正号即可.*37Example3.15用二进制补码表示法将存储在8位存储单元中的11100110还原成整数.解:最左位是1,因此符号为负.在整数转换成十进制前进行补码运算.*38Figure3.9二进制补码表示法的溢出二进制补码表示法仅有1个0.
i*39比较*40存储实数Storingreals实数是带有整数部分和小数部分的数字.例:23.7是一个实数,整数部分是23,小数部分是0.7.尽管固定小数点的表示法可以用于表示实数,但结果不一定精确或达不到需要的精度.带有很大的整数部分或者很小的小数部分的实数不应该用定点表示法存储.
i*41Example3.16在十进制系统中,假定用一种定点表示法,右边2个数码,左边14个数码,总计16个数码.如何表示十进制数1.00234?该系统的实数精度就会受损,该系统把这个数字存储为1.00.*42Example3.17十进制系统中,假定用一种右边6个数码,左边10个数码,总共16个数码的定点表示法.如何存储十进制数236154302345.00?该系统的实数精度就会受损,该系统把这个数字存储为6154302345.00整数部分比实际小了很多.*43浮点表示法Floating-pointrepresentation用于维持正确度或精度的解决方法是使用浮点表示法.浮点表示法允许小数点浮动,小数点的左右可以有不同数量的数码,增加了可存储的实数范围.Figure3.9在浮点表示法中的三个部分浮点表示法由3部分组成:符号、位移量、定点数
i*44Example3.18在科学计数法中,定点部分在小数点左边只有1位,位移量是10的幂次。用科学计数法(浮点表示法)表示的十进制数7,425,000,000,000,000,000,000.00这三部分为:符号(+),位移量(21),定点数(7.425).注意:位移量就是指数.+7.425E21*45Example3.19用科学计数法表示数字−0.0000000000000232这三部分为:符号
(-)、位移量(-14)、定点数(2.32)注意:这里指数是负的.-2.32E-14解:将小数点移到数码2之后,如下所示:*46Example3.20用浮点格式表示数字(101001000000000000000000000000000.00)2解:使用前例同样的方法,小数点前只保留一位数字.指数显示为32,实际上以二进制存储在计算机中。*47Example3.21用浮点格式表示数字−(0.00000000000000000000000101)2解:
小数点左边只留一个非零数码.*48规范化Normalization为了使表示法的固定部分统一,科学计数法(用于十进制)和浮点表示法(用于二进制)都在小数点左边使用了唯一的非零数码,这称为规范化.十进制系统中该非零数码可能是1到9,二进制系统中该非零数码是1.如下,
d
是非零数码,x
是一个数码,y
是0或1.*49二进制数规范化之后,只存储三部分信息:符号、指数、尾数。+1000111.0101规范化后变为:符号:用一个二进制位来表示(0或1)指数:小数点移动的位数,使用余码表示法存储指数位尾数:小数点右边的二进制数,定义了该数的精度。注意:尾数不是整数,而是像整数那样存储的小数部分在尾数中,如果在数字左边插入多余的0,值将会改变而在真正的整数中,左边插入0,值不会改变书P38错误*50小数点和定点部分左边的位1并没有存储,它们是隐含的.
i*51指数:是有符号的数,即显示多少位小数点应该左移或右移的幂次.余码系统中,正整数和负整数都可以作为无符号数存储.为了表示正整数或负整数,将正整数(偏移量)加到每个数字中,将它们统一移到非负一边.这个偏移量的值是2m−1−1,m是内存单元存储指数的大小.余码系统ExcessSystem*52Figure3.11余码表示法中的移位Example3.22可以用4位存储单元在数字系统中表示16个整数.在该范围中增加7个单位到每个整数中,可以统一把所有整数向右移,使其均为正数,而无需改变这些整数的相对位置,避免了相互调整,如图3-11所示.新系统称为余7码,或者偏移量为7的偏移表示法.*53Figure3.12浮点表示法的IEEE标准IEEE标准*54IEEE标准的规范*55IEEE标准浮点数存储存储符号位S.将绝对值转换为二进制.规范化二进制数.确定E(指数)和M(尾数),尾数不足的右侧补0.将SEM相连*56Example3.23写出十进制数5.75的余127码(单精度)表示法.符号为正,所以S=0.十进制转换为二进制:5.75=(101.11)2.规范化:(101.11)2=(1.0111)2×22.E=2+127=129=(10000001)2,M=0111.需要在M的右边增加19个0使之成为23位.该表示法如下所示:书P39错
存储在计算机中的数字是01000000101110000000000000000000解:*57Example3.24写出十进制数–161.875的余127码(单精度)表示法.解:符号为负,所以S=1.十进制转换为二进制:161.875=(10100001.111)2.规范化:(10100001.111)2=(1.0100001111)2×27.E=7+127=134=(10000110)2
,
而M=(0100001111)2.该表示法如下所示:存储在计算机中的数字是书P40错
11000011001000011110000000000000*58Example3.25写出十进制数–0.0234375的余127码(单精度)表示法S=1(该数为负).十进制转换为二进制:0.0234375=(0.0000011)2.规范化:(0.0000011)2=(1.1)2×2−6.E=–6+127=121=(01111001)2
,M=(1)2.该表示法如下所示:存储在计算机中的数字是10111100110000000000000000000000解:*59Example3.26位模式(11001010000000000111000100001111)2
以余127码格式存储于内存中.求该数字十进制计数法的值.首位表示S,接下来8位表示E,剩下23位是M.符号为负号.位移量=E−127=148−127=21.将(1.00000000111000100001111)2×221去规范化.二进制数是(1000000001110001000011.11)2.绝对值是2,104,378.75.该数字是−2,104,378.75.解:*60存储0StoringZero带有整数和小数部分的实数为0时是0.0,无法用以上讨论的步骤存储.为了处理这个特例,约定在这种情况下,符号、指数、尾数都设为0.*613-3存储文本STORINGTEXT在任何语言中,文本的片段是用来表示该语言中某个意思的一系列的符号。例如,英语中使用26个符号(A,B,C,…,Z)表示大写字母,26个符号(a,b,c,…,z)表示小写字母,10个符号(0,1,2,…,9)表示数字字符,以及符号(.,?,:,;,…,!)表示标点.书P41错另外一些符号(如空格blank、换行newline、制表符tab)被用于文本的对齐和可用性.*62Figure3.14利用位模式表示符号可以用位模式表示任何一个符号.换句话说,如四个符号组成的文本“CATS”,可以采用4个n位模式(n-bitpatterns)表示,任何一个模式定义一个单独的符号(图3.14).*63*64代码Codes
ASCII:美国国家标准协会ANSI开发了一个被称为美国信息交换标准码ASCII的代码,该代码使用7位表示每个符号。Unicode:硬件和软件制造商联合起来共同设计了Unicode代码,这种代码使用32位并能表示最大达232=4294967296个符号。
其他编码:最近几十年来,其他编码不断发展,鉴于Unicode的优势,这些编码不太流行。见附录A*653-4存储音频STORINGAUDIO音频表示声音或音乐.音频本质上与数字和文本是不同的.文本由可数的实体(文字)组成:可以数出文本中文字的数量,文本是数字数据的一个例子.相反,音频是不可数的.音频是模拟数据的例子.即使能够在一段时间内度量所有值,也不能全部存在计算机内存中,因为可能需要无限数量的内存单元.*66Figure3.15一个音频信号图3.15显示了一个模拟音频信号随时间变化的本质*67采样Sampling如果不能记录一段间隔的音频信号的所有值,至少可以记录其中的一些。采样意味着在模拟信号上选择数量有限的点,来度量它们的值,并记录下来。
Figure3.16一个音频信号的采样*68量化Quantization从每个样本测量得到的值是真实值.意味着要为每秒的样本存储40000个真实值.为每个样本使用1个无符号数表示会更简便.量化是将样本值截取为最接近整数值的过程.如,如果实际值为17.2,就可截取为17;如果实际值为17.7,就可截取为18.*69编码Encoding量化的样本值需要被编码成位模式.一些系统为样本赋正值或负值,另一些仅移动曲线到正的区间从而只赋正值.称每样本位的数量(位深度bitdepth)为B,每秒样本数为S,则需要为每秒的音频存储S×B位,该乘积称为位率R(bitrate).例如,如果使用每秒40,000个样本,每样本16位,位率是
R=40,000×16=640,000bit/s*70声音编码标准Standardsforsoundencoding当今音频编码的主流标准是MP3(MPEGLayer3).该标准是用于视频压缩方法的MPEG(MotionPictureExpertsGroup运动图像专家组)标准的一个修改版.它采用每秒44100个样本以及每样本16位.位率达到44100×16=705,600b/s(bitspersecond)再使用那些人耳无法识别的数据压缩方法进行压缩.这是一种有损压缩,与无损压缩相反,参见第15章.*713-5存储图像STORINGIMAGES存储在计算机中的图像使用两种不同的技术:光栅图或矢量图.光栅图Rastergraphics当需要存储模拟图像如照片时,就用到了光栅图或位图.一张照片由模拟数据组成.数据密度(色彩)因空间变化,意味着数据需要采样.这种情况下,采样通常被称作扫描.样本称为像素(代表图像的元素).*72解析度Resolution类似音频采样,在图像扫描中,要决定对每英寸的方块或线条需要记录多少像素.在图像处理中的扫描率称为解析度.若解析度足够高,人眼不会看出在重现图像中的不连续.*73色彩深度Colordepth用于表现像素的位的数量,即色彩深度,依赖于像素的颜色是如何由不同的编码技术来处理的.对颜色的感觉是人眼如何对光线的响应.人眼有不同类型的感光细胞:一些响应红、绿、蓝三原色(也叫RGB),而另一些仅仅响应光的密度.*74真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论