您好,欢迎访问三七文档
第03章数据存储-2-本章内容安排数据类型存储数字存储文本存储音频存储图像存储视频-3-数据类型工程程序:数字。文字处理程序:文本。图像处理程序:图像。计算机播放音乐:音频。计算机播放电影,创建特效:视频。计算机业使用术语“多媒体”来定义包含数字、文本、图像、音频和视频的信息。-4-计算机内部的数据计算机外部不同类型的数据,都需要采用统一的数据表示法转换后存入计算机,当数据从计算机输出时再还原回来。这种通用的格式称为位模式(bitpattern)。-5-位位:bit(binarydigit)是存储在计算机中的最小数据单位,它是0或1。位代表设备的某一种状态,这些设备只能处于两种状态之一。如开关要么断开(用0表示),要么合上(用1表示)。计算机中使用“电子开关”表示位,一个开关存储一个位的信息,计算机使用众多的两态设备来存储数据。-6-位模式单个的位并不能解决数据表示问题。为了表示数据的不同类型,应该使用位模式(bitpattern),它是一个由若干个位构成的序列,有时也被称为位流。通常将长度为8的位模式称为字节(byte)。-7-位模式属于不同类型的数据可以以同样的位模式存储。存储器仅关心如何将数据按位模式存储;将位模式解释为何种数据类型,则由程序负责完成。-8-相关话题数据压缩数据存储到计算机之前通常被压缩,以节省空间,数据压缩在第15章讨论。错误检测和纠正在传输和存储数据时的错误检测和纠正。-9-本章内容安排数据类型存储数字存储文本存储音频存储图像存储视频-10-存储数字的基本问题数字要存入计算机,首先必须要转换为二进制系统,此外还需要解决如何存储数字的符号?如何现实小数点?-11-2.1、存储整数整数通常使用定点表示法存储在内存中小数点是假定的,但不存储-12-整数的常见存储方法整数表示有符号整数无符号整数符号加绝对值格式二进制补码格式-13-1、无符号整数无符号整数是没有符号的整数,介于0~无穷大之间。计算机不可能表示所有整数。通常,计算机都定义了一个最大无符号整数常量。无符号整数范围介于0到该常量之间。最大无符号整数(2n-1)取决于计算机中分配用于保存无符号整数的二进制位数n存储无符号整数将整数变成二进制数;将二进制对齐到指定的位数:如果二进制位数不足n位,则在二进制数左边补0,使它的总位数为n位;若超过n位,表示无法存储,导致溢出。-14-无符号整数存储示例问题将7按照无符号整数格式存储在8位存储单元中解答7→111→00000111.-15-无符号整数存储示例问题将258按照无符号整数格式存储在16位存储单元中解答258→100000010→0000000100000010-16-译码无符号整数将指定的位串,按照二进制转换为十进制,结果即为对应的无符号整数。-17-无符号整数译码示例问题译解内存中“00101011”对应的无符号整数解答遵循进制转换规则,00101011→43-18-溢出限定存储单元位数后,可以表达的无符号整数是有限的对于n位存储单元中,可表示数范围为0~2n-1若n为4,则最大可以存储15将超过15的输入存储后,会出现溢出的情况。-19-溢出的结果11+9→20,表示为(10100)2溢出时丢弃存储不了的高位→4-20-无符号整数的应用无符号整数用来存储非负数,不用存储符号,效率较高。计数寻址:引用一个存储单元的地址做为其它数据类型的基础:如文本、图像、音频和视频的基本存储单元,可看成无符号数-21-2、符号加绝对值符号加绝对值格式对n位位模式,2n个编码(0~2n-1)划分为2个区域,分别用来表示正整数和负整数在符号+绝对值表示法(原码)中,最左边的位用于定义数的符号。如果是0,则表示正数,如果为1,则表示负数。-22-符号加绝对值的数据存储过程将整数的绝对值转换成二进制数。若二进制位数不足n-1,左边补0,使总位数为n-1。若位数超过n-1,则发生溢出,无法存储。如果是正数,则在最左边加0(使它变成n位);如果是负数,则在最左边加1(使它变成n位)-23-符号加绝对值存储示例问题将+28按照符号加绝对值格式存储在8位位模式中解答28→11100→0011100→00011100-24-符号加绝对值存储示例问题将-28按照符号加绝对值格式存储在8位位模式中解答28→11100→0011100→10011100-25-符号加绝对值整数译码示例问题译解内存中按照符号加绝对值格式存储的“01001101”对应的数值解答最高位为0→正数提取后7位→1001101→77-26-符号加绝对值整数译码示例问题译解内存中按照符号加绝对值格式存储的“10100001”对应的数值解答最高位为1→负数提取后7位→0100001→33→-33-27-符号加绝对值表示的溢出在符号加绝对值表示法(原码)中0有两种表示方法:正数零和负数零以8位存储单元为例:+000000000-010000000-28-符号加绝对值整数的应用现代计算机不使用原码存储整数。进行加、减运算不方便;0的表示不唯一。特殊应用:进制转换简单;应用于不涉及数字运算的场合,如采样模拟信号。-29-3、二进制补码二进制补码格式几乎所有的计算机都使用二进制补码存储有符号整数;对n位位模式,2n个编码(0~2n-1)划分为2个区域,分别用来表示非负正整数和负整数在二进制补码格式表示法中,表示正数,使用无符号整数;表示负数,使用整数的补码格式。-30-两种运算反码运算翻转操作数(整数)的各个位补码运算将被操作数的二进制位中右侧连续的0及首次出现的1保持不变,其余位取反。-31-两种运算对二进制整数执行2次反码运算,将得到原数。-32-两种运算对二进制整数执行2次补码运算,将得到原数。补码运算可以通过反码运算后再加1得到。-33-二进制补码的数据存储过程将整数的绝对值转换为二进制;将二进制对齐到n位,不足n位的左侧补0,超过n位的表示存储不了,会产生溢出;如果是正数或零,原样存储;若果是负数,取其补码存储(通过补码运算得到)。-34-二进制补码存储示例问题将+28按照二进制补码格式存储在8位位模式中解答28→11100→00011100-35-二进制补码存储示例问题将-28按照二进制补码格式存储在8位位模式中解答28→11100→00011100→11100100-36-译码二进制补码过程如果最左位为1,取其补码;最左位为0,保持不变。将二进制转换为十进制数;如果最左位为1,为其添加负号;最左位为0,保持不变-37-二进制补码整数译码示例问题译解内存中按照二进制补码格式存储的“00001101”对应的数值解答-38-二进制补码整数译码示例问题译解内存中按照二进制补码格式存储的“11100110”对应的数值解答-39-二进制补码表示的溢出补码中0只有一种表示方法。以8位位模式为例:+000000000-000000000-40-二进制补码的应用二进制补码是当今计算机存储带符号整数的标准表示方法。补码使得二进制运算更简单,具体内容在第四章介绍。-41-4、3种系统的比较-42-2.2、存储实数实数带有整数部分和小数部分带有很大整数部分或很小小数部分的实数不应该使用定点表示法实数通常使用浮点表示法表示,允许小数点浮动。若用16位定点小数存储实数,小数点右侧2个数码,小数点左侧14个数码;存储1.00234时,会损失精度实际存储为1.00-43-1、浮点表示法浮点表示法浮点数由符号、位移量、定点数构成采用科学计数法表示浮点数-44-十进制数的科学记数法用科学记数法表示下面的十进制数解答7,452,000,000,000,000,000,000.00-45-十进制数的科学记数法用科学记数法表示下面的十进制数解答−0.0000000000000232使用科学记数法,可以表示绝对值很大或很小的数-46-二进制数的浮点格式表示用科学记数法表示下面的十进制数解答(101001000000000000000000000000000.00)2-47-二进制数的浮点格式表示用科学记数法表示下面的十进制数解答(0.00000000000000000000000101)2-48-2、规范化为了统一数据表示,需要对实数的表示进行规范化科学记数法(十进制)和浮点表示法(二进制),通过移动小数点(调整位移量),在小数点左边保留唯一的非零数码十进制:1~9二进制:1-49-3、符号、指数和尾数二进制浮点数规范化后,只存储3个部分符号:1个二进制位(0或1)指数:定义小数点移动的位数,采用余码表示法,定义了数的量级尾数:小数点右边的二进制数,定义了数的精度小数点和定点部分小数点左侧的1没有存储,是隐含的尾数加符号位,可看成符号加绝对值的整数表示-50-4、余码系统二进制浮点数系统中,采用余码系统存储指数部分尾数作为无符号数存储,指数有正有负;余码系统中,为了采用无符号数存储指数部分,将一个正整数(偏移量)加到每个指数上,统一到非负偏移量通常为:2m-1-1(m为指数位数)-51-5、IEEE标准两种浮点数标准单精度浮点数:32位存储浮点数,指数占8位,采用余127码(偏移量为127)双精度浮点数:64位存储浮点数,指数占11位,采用余1023码(偏移量为1023)-52-6、IEEE标准浮点数存储过程在S中存储符号位将绝对值转换为二进制规范化二进制数找到E(指数)和M(尾数),尾数不足的右侧补零连接S、E、M-53-标准浮点数存储按余码127(单精度浮点数)存储5.75解答为正数→S=0十进制转二进制:5.75→(101.11)2规范化:→(101.11)2×22E=2+127=129→(10000001)2M=1011-54-标准浮点数存储按余码127(单精度浮点数)存储-161.875解答为负数→S=1十进制转二进制:→(10100001.111)2规范化:→(1.0100001111)2×27E=7+127=134→(10000110)2M=100001111-55-7、译码标准浮点数过程找出S(符号)、E(指数)、M(尾数)如果S为0,表示正数,否则表示负数计算位移量(E-偏移量)对尾数取规范化计算十进制数值添加符号-56-译码标准浮点数示例按余码127(单精度浮点数)译码内存中的(11001010000000000111000100001111)2解答S为1,为负数位移量:→E-127=148-127=21→(1.00000000111000100001111)2×221去规范化→(1000000001110001000011.11)2→2,104,378.75→-2,104,378.75-57-8、浮点数的溢出浮点数表示法不能存储绝对值很大或很小的数下溢:试图存储绝对值很小的数导致下溢上溢:试图存储绝对值很大的数导致上溢-58-9、存储零理论上讲,标准浮点数无法存储实数0.0特殊处理,为了解决这个特例,约定在这种情况下,S、E、M的值均为0-59-10、截断误差使用浮点数存储实数时,可能会存在误差如使用余码127存储(111111111111111.1111111111111)2规范化后得到(1.111111111111111111111111111)2意味着尾数有27个1,需要被截断为23个1,从而造成了存储误差(称为截断误差)在高精度应用领域,需要更多位数存储要求更高的浮点数-60-本章内容安排数据类型存储数字存储文本存储音频存储图像存储视频-61-存储文本任何语言中,文本都是由一系列符号构成。如英文由26个字母(大写和小写)、数字符号、标点符号等构成。表示文本时,需要使用位模式表示构成文本的每一个符
本文标题:第03章数据存储.
链接地址:https://www.777doc.com/doc-2152696 .html