第03章-数据存储

上传人:小** 文档编号:56464994 上传时间:2018-10-12 格式:PPT 页数:86 大小:2.18MB
返回 下载 相关 举报
第03章-数据存储_第1页
第1页 / 共86页
第03章-数据存储_第2页
第2页 / 共86页
第03章-数据存储_第3页
第3页 / 共86页
第03章-数据存储_第4页
第4页 / 共86页
第03章-数据存储_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《第03章-数据存储》由会员分享,可在线阅读,更多相关《第03章-数据存储(86页珍藏版)》请在金锄头文库上搜索。

1、第03章 数据存储,-2-,本章内容安排,数据类型 存储数字 存储文本 存储音频 存储图像 存储视频,-3-,数据类型,工程程序:数字。文字处理程序:文本。图像处理程序:图像。计算机播放音乐:音频。计算机播放电影,创建特效:视频。,计算机业使用术语“多媒体”来定义包含数字、文本、图像、音频和视频的信息。,-4-,计算机内部的数据,计算机外部不同类型的数据,都需要采用统一的数据表示法转换后存入计算机,当数据从计算机输出时再还原回来。 这种通用的格式称为位模式(bit pattern)。,-5-,位,位:bit(binary digit)是存储在计算机中的最小数据单位,它是 0 或 1。 位代表设

2、备的某一种状态,这些设备只能处于两种状态之一。如开关要么断开(用0表示),要么合上(用1表示)。 计算机中使用“电子开关”表示位,一个开关存储一个位的信息,计算机使用众多的两态设备来存储数据。,-6-,位模式,单个的位并不能解决数据表示问题。 为了表示数据的不同类型, 应该使用位模式(bit pattern), 它是一个由若干个位构成的序列, 有时也被称为位流。 通常将长度为8的位模式称为字节(byte)。,-7-,位模式,属于不同类型的数据可以以同样的位模式存储。 存储器仅关心如何将数据按位模式存储; 将位模式解释为何种数据类型,则由程序负责完成。,-8-,相关话题,数据压缩 数据存储到计算

3、机之前通常被压缩,以节省空间,数据压缩在第15章讨论。 错误检测和纠正 在传输和存储数据时的错误检测和纠正。,-9-,本章内容安排,数据类型 存储数字 存储文本 存储音频 存储图像 存储视频,-10-,存储数字的基本问题,数字要存入计算机,首先必须要转换为二进制系统,此外还需要解决 如何存储数字的符号? 如何现实小数点?,-11-,2.1、存储整数,整数通常使用定点表示法存储在内存中 小数点是假定的,但不存储,-12-,整数的常见存储方法,-13-,1、无符号整数,无符号整数 是没有符号的整数,介于0无穷大之间。 计算机不可能表示所有整数。通常,计算机都定义了一个最大无符号整数常量。无符号整数

4、范围介于0到该常量之间。 最大无符号整数(2n-1)取决于计算机中分配用于保存无符号整数的二进制位数n 存储无符号整数 将整数变成二进制数; 将二进制对齐到指定的位数:如果二进制位数不足n位,则在二进制数左边补0,使它的总位数为n位;若超过n位,表示无法存储,导致溢出。,-14-,无符号整数存储示例,问题 将7按照无符号整数格式存储在8位存储单元中 解答,7 111 00000111.,-15-,无符号整数存储示例,问题 将258按照无符号整数格式存储在16位存储单元中 解答,258 100000010 0000000100000010,-16-,译码无符号整数,将指定的位串,按照二进制转换为

5、十进制,结果即为对应的无符号整数。,-17-,无符号整数译码示例,问题 译解内存中“00101011”对应的无符号整数 解答,遵循进制转换规则, 00101011 43,-18-,溢出,限定存储单元位数后,可以表达的无符号整数是有限的 对于n位存储单元中,可表示数范围为02n-1 若n为4,则最大可以存储15 将超过15的输入存储后,会出现溢出的情况。,-19-,溢出的结果,11920,表示为(10100)2 溢出时丢弃存储不了的高位4,-20-,无符号整数的应用,无符号整数用来存储非负数,不用存储符号,效率较高。 计数 寻址:引用一个存储单元的地址 做为其它数据类型的基础:如文本、图像、音频

6、和视频的基本存储单元,可看成无符号数,-21-,2、符号加绝对值,符号加绝对值格式 对n位位模式,2n个编码(02n-1)划分为2个区域,分别用来表示正整数和负整数,在符号绝对值表示法(原码)中,最左边的位用于定义数的符号。如果是0,则表示正数,如果为1,则表示负数。,-22-,符号加绝对值的数据存储,过程 将整数的绝对值转换成二进制数。 若二进制位数不足n-1, 左边补0,使总位数为n-1。若位数超过n-1,则发生溢出,无法存储。 如果是正数,则在最左边加0(使它变成n位);如果是负数,则在最左边加1(使它变成n位),-23-,符号加绝对值存储示例,问题 将+28按照符号加绝对值格式存储在8

7、位位模式中 解答,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-,符号加绝对值表示的溢出,在符号加绝对值表示

8、法(原码)中0有两种表示方法:正数零和负数零 以8位存储单元为例: +0 00000000 -0 10000000,-28-,符号加绝对值整数的应用,现代计算机不使用原码存储整数。 进行加、减运算不方便; 0的表示不唯一。 特殊应用:进制转换简单;应用于不涉及数字运算的场合,如采样模拟信号。,-29-,3、二进制补码,二进制补码格式 几乎所有的计算机都使用二进制补码存储有符号整数; 对n位位模式,2n个编码(02n-1)划分为2个区域,分别用来表示非负正整数和负整数,在二进制补码格式表示法中,表示正数,使用无符号整数;表示负数,使用整数的补码格式。,-30-,两种运算,反码运算 翻转操作数(整

9、数)的各个位补码运算 将被操作数的二进制位中右侧连续的0及首次出现的1保持不变,其余位取反。,-31-,两种运算,对二进制整数执行2次反码运算,将得到原数。,-32-,两种运算,对二进制整数执行2次补码运算,将得到原数。,补码运算可以通过反码运算后再加1得到。,-33-,二进制补码的数据存储,过程 将整数的绝对值转换为二进制; 将二进制对齐到n位,不足n位的左侧补0,超过n位的表示存储不了,会产生溢出; 如果是正数或零,原样存储;若果是负数,取其补码存储(通过补码运算得到)。,-34-,二进制补码存储示例,问题 将+28按照二进制补码格式存储在8位位模式中 解答,28 11100 000111

10、00,-35-,二进制补码存储示例,问题 将-28按照二进制补码格式存储在8位位模式中 解答,28 11100 00011100 11100100,-36-,译码二进制补码,过程 如果最左位为1,取其补码;最左位为0,保持不变。 将二进制转换为十进制数; 如果最左位为1,为其添加负号;最左位为0,保持不变,-37-,二进制补码整数译码示例,问题 译解内存中按照二进制补码格式存储的“00001101”对应的数值 解答,-38-,二进制补码整数译码示例,问题 译解内存中按照二进制补码格式存储的“11100110”对应的数值 解答,-39-,二进制补码表示的溢出,补码中0只有一种表示方法。 以8位位

11、模式为例: +0 00000000 -0 00000000,-40-,二进制补码的应用,二进制补码是当今计算机存储带符号整数的标准表示方法。 补码使得二进制运算更简单,具体内容在第四章介绍。,-41-,4、3种系统的比较,-42-,2.2、存储实数,实数带有整数部分和小数部分 带有很大整数部分或很小小数部分的实数不应该使用定点表示法 实数通常使用浮点表示法表示,允许小数点浮动。,若用16位定点小数存储实数,小数点右侧2个数码, 小数点左侧14个数码;存储1.00234时,会损失精度 实际存储为1.00,-43-,1、浮点表示法,浮点表示法 浮点数由符号、位移量、定点数构成 采用科学计数法表示浮

12、点数,-44-,十进制数的科学记数法,用科学记数法表示下面的十进制数解答,7,452,000,000,000,000,000,000.00,-45-,十进制数的科学记数法,用科学记数法表示下面的十进制数解答,0.0000000000000232,使用科学记数法,可以表示绝对值很大或很小的数,-46-,二进制数的浮点格式表示,用科学记数法表示下面的十进制数解答,(101001000000000000000000000000000.00)2,-47-,二进制数的浮点格式表示,用科学记数法表示下面的十进制数解答,(0.00000000000000000000000101)2,-48-,2、规范化,为

13、了统一数据表示,需要对实数的表示进行规范化 科学记数法(十进制)和浮点表示法(二进制),通过移动小数点(调整位移量),在小数点左边保留唯一的非零数码 十进制:19 二进制:1,-49-,3、符号、指数和尾数,二进制浮点数规范化后,只存储3个部分 符号:1个二进制位(0或1) 指数:定义小数点移动的位数,采用余码表示法,定义了数的量级 尾数:小数点右边的二进制数,定义了数的精度,小数点和定点部分小数点左侧的1没有存储,是隐含的,尾数加符号位,可看成符号加绝对值的整数表示,-50-,4、余码系统,二进制浮点数系统中,采用余码系统存储指数部分 尾数作为无符号数存储,指数有正有负; 余码系统中,为了采

14、用无符号数存储指数部分,将一个正整数(偏移量)加到每个指数上,统一到非负 偏移量通常为: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

15、(101.11)2 规范化:(101.11)222 E= 2+127 = 129 (10000001)2 M=1011,-54-,标准浮点数存储,按余码127(单精度浮点数)存储-161.875 解答,为负数S=1 十进制转二进制:(10100001.111)2 规范化:(1.0100001111)227 E= 7+127 = 134(10000110)2 M= 100001111,-55-,7、译码标准浮点数,过程 找出S(符号)、E(指数)、M(尾数) 如果S为0,表示正数,否则表示负数 计算位移量(E-偏移量) 对尾数取规范化 计算十进制数值 添加符号,-56-,译码标准浮点数示例,按余

16、码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,从而造成了存储误差(称为截断误差) 在高精度应用领域,需要更多位数存储要求更高的浮点数,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号