第3章 数据存储_第1页
第3章 数据存储_第2页
第3章 数据存储_第3页
第3章 数据存储_第4页
第3章 数据存储_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

第3章数据存储

3.1数据类型

3.2存储数字

3.3存储文本

3.4存储音频

3.5存储图象

3.6存储视频Afterreadingthischapter,thereadershouldbeableto:OBJECTIVESList5differentdatatypesinsideacomputer.Understandthedifferentrepresentationsofanintegerinsideacomputer:unsigned,sign-and-magnitude,one’scomplement,andtwo’scomplement.Understandtheafloating-pointsystemthatisusedtostorearealnumber.Understandhowtext,audio,imageandvideoarestoredinsideacomputer.3.1数据类型(1)数据文本数字图像音频视频文字处理工程程序多媒体程序3.1数据类型(2)

计算机业界使用术语“多媒体”来定义包含数字、文本、图像、音频和视频的信息。Note:Thecomputerindustryusestheterm

“multimedia”todefineinformationthatcontainsnumbers,text,images,audio,andvideo.3.1数据类型(3)位(bit,binarydigit的缩写)位是存储在计算机中的最小数据单位,非0即1。请举出几种只有二种稳定状态的设备?你能举出具有十种稳定状态的设备吗?位模式位模式是一个序列,也被称为位流。3.1数据类型(4)16个位组成的位模式需要多少个开关?10000个这样的位模式需要多少个开关?3.1数据类型(5)字节长度为8的位模式被称为字节。通常用来测量内存或各种存储设备的容量大小。内存能存储800万位信息的计算机,具有多少字节的内存?Bitpattern3.1数据类型(6)3.1数据类型(7)不同类型数据存储数字6501000001存储器程序数学公式文字“A”01000001存储器程序文本编辑器图象۞01000001存储器程序图像记录仪01000001存储器程序录音机01000001存储器程序摄像机声音视频3.1数据类型(8)数据压缩错误检测和纠正数据压缩在第15章讨论错误检测和纠正在附录H讨论3.2存储数字(1)数字的二种表示方法定点表示法浮点表示法整数实数实数超大整数3.2存储数字(2)0110010011100110.存储单元小数点(假定位置)整数的定点表示法1001110001011010.存储单元小数点(假定位置)实数的定点表示法3.2存储数字(3)整数通常使用定点表示法存储在内存中.注:整数存储的分类3.2存储数字(4)整数表示无符号整数有符号整数符号加绝对值格式二进制反码格式二进制补码格式无符号整数的范围#ofBits

---------816Range

-------------------------------------0255065,535位数为N,可以表示的二进制值的范围是多少?N=10,可以表示的二进制值的范围是多少?整数的表示(1)Example1Store7inan8-bitmemorylocation.SolutionFirstchangethenumbertobinary111.Addfive0stomakeatotalofN(8)bits,00000111.Thenumberisstoredinthememorylocation.整数的表示(2)Example2Store258ina16-bitmemorylocation.SolutionFirstchangethenumbertobinary100000010.Addseven0stomakeatotalofN(16)bits,0000000100000010.Thenumberisstoredinthememorylocation.整数的表示(3)当译解一个保存在内存中的无符号整数

00101011时,从输出设备上得到什么结果?N位存储单元可以表达的整数是多少?超出这个范围会出现什么结果?整数的表示(4)Example3Interpret00101011indecimalifthenumberwasstoredasanunsignedinteger.SolutionUsingtheprocedureshowninFigure3-5,thenumberindecimalis43.整数的表示(5)整数的表示(6)023411517181916可表示的整数溢出111100010010001101000101011000001001100001111100101110101101111011+9=二类不同的计算机中无符号整数的存储Decimal

------------723425824,7601,245,6788-bitallocation------------0000011111101010overflowoverflowoverflow16-bitallocation------------------------------0000000000000111000000001110101000000001000000100110000010111000overflow整数的表示(7)整数的表示(8)无符号整数一般用于哪些场合?计数,寻址,为其他数据类型排序等整数的表示(9)

符号加绝对值表示方法:4位,8位,16位,32位……位流中,我们是否可以使用最高位来表示符号,用其它位表示数的绝对值大小呢?0000000100100011010001010110011110001001101010111100110111101111+0+1+2+3+4+5+6+7

-0-1-2-3-4-5-6-7

符号加绝对值整数的范围#ofBits

----------81632-127-0-32767-0-2,147,483,647

-0+0+127+0+32767+0+2,147,483,647Range-------------------------------------------------------整数的表示(10)位数为N,用符号加绝对值整数可以表示的二进制值的范围是多少?N=10,用符号加绝对值整数可以表示的二进制值的范围是多少?在符号加绝对值表示法中,最左边的位用于定义数的符号。如果是1,表示该数是负数,如果是0,表示该数是正数。注:

整数的表示法(11)Example4在8位存储单元中存储用符号加绝对值表示法的+7.Solution首先转换该数为二进制111,该二进制位数不足7位,在其左边补0000,使其总位数为7位0000111。然后,如果是正数,则在最左边加0,如果是负数,则在最左边加1,使其总位数为8

00000111

整数的表示法(12)Example5在8位存储单元中存储用符号加绝对值表示法的+28.Solution首先转换该数为二进制11100,该二进制位数不足7位,在其左边补00,使其总位数为7位0011100。然后,如果是正数,则在最左边加0,如果是负数,则在最左边加1,使其总位数为8

00011100

整数的表示法(13)Example6在16位存储单元中存储用符号加绝对值表示法的-258。Solution首先转换该数为二进制100000010,该二进制位数不足15位,在其左边补000000,使其总位数为15位000000100000010。然后在最左边加1,使其总位数为16位

1000000100000010整数的表示法(14)Example7将用符号加绝对值格式表示法存储的10100001复原成整数。Solution因为最左位是1,符号为负。其余位(0100001)转换成十进制数33,加上符号后该整数是-33。整数的表示法(15)在符号加绝对值表示法中0有二种表示方法:正数0和负数0.在8位存储单元中:+000000000

-010000000注:整数的表示(16)两种不同的计算机中符号加绝对值整数的存储Decimal

------------+7-124+258-24,7608-bitallocation------------0000011111111100overflowoverflow16-bitallocation------------------------------0000000000000111100000000111110000000001000000101110000010111000整数的表示法(17)符号加绝对值表示法存在溢出吗?整数的表示法(18)1111(-7)0001(1)0010(2)0011(3)0100(4)0101(5)0110(6)0000(0)(-1)1001(-0)10000111(7)1100(-4)1011(-3)1010(-2)1101(-5)1110(-6)-5-7=-12?整数的表示法(19)整数的表示法(20)1111(-7)0001(1)0010(2)0011(3)0100(4)0101(5)0110(6)0000(0)(-1)1001(-0)10000111(7)1100(-4)1011(-3)1010(-2)1101(-5)1110(-6)5+6=11在反码表示法中有2个0。在8位存储单元中:+000000000

-011111111注:整数的表示法(21)二进制反码格式整数的范围#ofBits

---------81632-127-0-32767-0-2,147,483,647

-0+0+127+0+32767+0+2,147,483,647Range-------------------------------------------------------

整数的表示法(22)反码:该运算简单反转各位,即把1变为0,把0变为1.在反码表示法中,最左边的位用于定义数的符号。如果是1,表示该数是负数,如果是0,表示该数是正数。注:

整数的表示法(23)Example8在8位存储单元中存储反码表示法的+7.Solution首先转换该数为二进制111,该二进制位数不足8位,在其左边补00000,使其总位数为8位。

原码表示:00000111注:正数的反码就是其原码本身.

整数的表示法(24)Example10Solution把数变换成二进制100000010.在左边加上7个0使其变为16位0000000100000010.因为符号是负的,所以把每一位变换为它的反码形式。结果为::

1111111011111101整数的表示法(25)在16位存储单元中存储用反码表示的-258。两种不同的计算机中二进制反码格式整数的存储Decimal

------------+7-7+124-124+24,760-24,7608-bitallocation------------00000111111110000111110010000011overflowoverflow16-bitallocation------------------------------000000000000011111111111111110000000000001111100111111111000001101100000101110001001111101000111整数的表示法(26)Example11把以二进制反码格式存储的数11110110译成十进制数.Solution最左边是负数,现转换成反码00001001.该反码是十进制数9,所以原来的数是-9。注意反码的反码即为本身。整数的表示法(27)二进制反码表示需要转换所有的位,如果把正数转换成它的反码形式,就得到相应的负数。如果把负数转换成它的反码形式,就得到相应的正数。如果对一个数取二次反码,就得到原来的值。注:

整数的表示法(28)二进制补码表示法是当今使用最普遍、最重要、应用最广泛的整数表示法.注:整数的表示法(29)二进制补码表示法:将整数变成二进制数,如果整数是正数或零,以原码存储;如果是负数,计算机取其补码存储整数的表示法(30)二进制补码二种求法:1.原码取反码+12.最右边第一个1左边所有数取反码.00110100取反:11001011+00000001补码:110011000011010000110100取反:11001100补码:11001100整数的表示法(31)二进制补码还原为整数:1.如果最左位是1,计算机取其补码.如果最左位是0,计算机不进行操作.2.计算机将该整数转换为十进制数.11001011取反001101000011010111001011取反:0011010100110101+100000001结果:-5311001011结果:-53二进制补码数的范围#ofBits---------81632-128

-32,768-2,147,483,648

0+1270+32,7670+2,147,483,647Range-------------------------------------------------------整数的表示法(32)在补码表示法中,最左边的位用于定义数的符号。如果是1,表示该数是负数,如果是0,表示该数是正数。注:整数的表示法(33)Example12Solution首先转换该数为二进制111,该二进制位数不足8位,在其左边补00000,使其总位数为8位。

00000111整数的表示法(34)在8位存储单元中存储补码表示法的+7.Example13Solution首先将该数的绝对值转换为二进制

101000.加上10个0使其总数为16位:,0000000000101000,因为是负数,因此从右边第一个1右边的数取反得到结果:

1111111111011000整数的表示法(35)在16位存储单元中存储用补码表示的-40。两种不同的计算机中二进制补码表示法示例Decimal

------------+7-7+124-124+24,760-24,7608-bitallocation------------00000111111110010111110010000100overflowoverflow16-bitallocation------------------------------000000000000011111111111111110010000000001111100111111111000010001100000101110001001111101001000整数的表示法(36)在补码表示法中只有1个0。在8位存储单元中:000000000注:整数的表示法(37)Example14将二进制补码整数11110110转换成十进制数。Solution最左边是1.该数是负数.使右边的10不变,其余的位取反。得到的结果是00001010。得到的二进制补码数是10,所以原来的数是-10。

整数的表示法(38)Example15对00110100进行二次补码运算,结果如何?Solution

整数的表示法(39)0011010000110100取反:110011001次补码:110011001100110011001100取反:001101002次补码00110100二进制补码可以通过对除了最右边的0到第一个1(包括1)以外的所有位取反实现。如果对正数求二进制补码,则得到相应的负数,如果对负数求其二进制补码,则得到相应的正数。如果对一个数取二次二进制补码,就得到原来的数。注:

整数的表示法(40)人类最简单的算术运算是什么?为何要用二进制补码方式表示数据?二进制补码表示法有溢出吗?8位存储单元最高位为符号位,可表示的数的范围是多少?

整数的表示法(41)

整数的表示法(42)1111(-1)0001(1)0010(2)0011(3)0100(4)0101(5)0110(6)0000(0)(-7)1001(-8)10000111(7)1100(-4)1011(-5)1010(-6)1101(-3)1110(-2)-3-7=-10?1111(-1)0001(1)0010(2)0011(3)0100(4)0101(5)0110(6)0000(0)(-7)1001(-8)10000111(7)1100(-4)1011(-5)1010(-6)1101(-3)1110(-2)

整数的表示法(43)5+6=11整数表示法小结ContentsofMemory

------------0000000100100011010001010110011110001001101010111100110111101111Unsigned

------------0123456789101112131415Sign-and-Magnitude---------+0+1+2+3+4+5+6+7-0-1-2-3-4-5-6-7One’s

Complement---------+0+1+2+3+4+5+6+7-7-6-5-4-3-2-1-0Two’s

Complement--------+0+1+2+3+4+5+6+7-8-7-6-5-4-3-2-1

整数的表示法(44)在十进制系统中,假定小数点右边2个数码,左边14个数码,如果试图表示十进制数1.00234,系统存储的数字是多少?在十进制系统中,假定小数点右边6个数码,左边10个数码,如果试图表示十进制数236154302345.00,系统存储的数字是多少?3.2存储实数(1)3.2存储实数(2)带有很大整数部分或很小小数部分的实数不应该用定点表示法存储.注:3.2存储实数(3)+236154302345.12=+2.3615430234512X1011=+23615.430234512X107=…….-0.00000734512=-0.734512X10-5=-73.4512X10-7=7.3451210-6…….3.2存储实数(3)浮点表示法:

该表示法允许小数点浮动:我们可以在小数点的左右有不同数量的数码.

该表示法每一个数字都由3部分组成,符号,位移量,定点数.

符号位移量定点数实数Example16科学记数法,定点部分在小数点左边只有一个数码,而且位移量是10的幂次。写出7425000000000000000000.00的科学记数式。Solution+7.425X1021+7.425E213.2存储实数(4)Example17写出-0.0000000000000232的科学记数式。Solution2.32X10-14-2.32E-143.2存储实数(5)Example18用浮点格式表示数字(10100100000000000000000000000000.00)2Solution+1.01001X2323.2存储实数(6)Example19用浮点格式表示数字-(0.00000000000000000000000101)2Solution-1.01X2-243.2存储实数(7)规范化:科学记数法(十进制)和浮点表示法(用于二进制)都在小数点左边使用唯一的非零数码,这称为规范化。十进制:d.xxxxxxxxxxxd为1~9的数,x是0~9的数3.2存储实数(8)二进制:1.yyyyyyyyyyyyyy是0~1的数符号、指数和尾数:浮点数的符号用一个二进制位来存储。浮点数的指数定义为小数点移动的位数。尾数是指小数点右边的二进制数。3.2存储实数(9)二进制:+26X1.0001110101

+60001110101符号指数尾数3.2存储实数(10)注意小数点和定点左边的位1并没有存储,默认为1,它们是隐含的。尾数是带有符号的小数部分,可以作为无符号整数存储,像以符号加绝对值表示法存储的整数那样对待。注:余码系统:指数尽管可以用二进制补码来表示。但被一种称之为余码系统的新的表示方法所代替。在原指数的基础上加上另一个正整数,将它们统一移到非负的一边,这个偏移量的值是2m-1-1.3.2存储实数(11)带正负数的4位系统-7-6-5-4-3-2-1012345678余7码系统

012345678910111213141516加7浮点数的IEEE标准符号指数尾数符号指数尾数3.2存储实数(12)3.2存储实数(13)1)存储符号在最高位S(0或1)2)将十进制数字转化为二进制3)规范化4)找到指数E和尾数值M5)连接符号、指数和尾数IEEE标准浮点数表示法Example20在Excess_127系统中将-25存储在8位存储单元中。Solution先将-25与幻数127相加得到102。转换成二进制数就是1100110。补一位使它的总位数为8位。最终得到的结果就是01100110。3.2存储实数(14)Example21把Excess_127系统表示的11111110转换成十进制数.Solution首先把该二进制数转换成十进制数,结果是254.然后减去127,得到十进制数127。3.2存储实数(15)Example22写出十进制数5.75的余127码(单精度)表示法。Solution1)符号为正,所以S=02)十进制转换为二进制:5.75=(101.11)23)规范化(101.11)2=(1.1011)2X22E=2+127=129=(10000001)2,M=1011,需增加19个0010000001101100000000000000000003.2存储实数(16)Example23写出十进制数-161.875的余127码(单精度)表示法。Solution1)符号为负,所以S=12)十进制转换为二进制:161.875=(10100001.111)23)规范化(10100001.111)2=(1.0100001111)2X27E=7+127=134=(10000110)2,M=0100001111,需增加13个0110000110010000111100000000000003.2存储实数(17)Example24写出十进制数-0.0234375的余127码(单精度)表示法。Solution1)符号为负,所以S=12)十进制转换为二进制:0.0234375=(0.0000011)23)规范化(0.0000011)2=(1.1)2X2-6E=-6+127=121=(01111001)2,M=(1)2,需增加122个0101111001100000000000000000000003.2存储实数(18)规范化示例OriginalNumber

------------+1010001.1101-111.000011+0.00000111001-001110011Move

------------6263OriginalNumber

------------+1010001.1101-111.000011+0.00000111001-0.001110011Normalized

------------

+26

x1.01000111001-22

x1.11000011+2-6x1.11001-2-3

x1.1100113.2存储实数(19)Example25给出下列规范化数的单精度表示法:+26x1.01000111001Solution符号是正,用0表示,指数是6,在Excess_127系统表示法中,给指数加上127,得到133.用二进制表示,就是10000101.尾数是01000111001.当位数增加到23位,即得到01000111001000000000000

010000101010001110010000000000003.2存储实数(20)浮点表示法的示例Sign

----101Mantissa

-------------------------------110000110000000000000001100100000000000000000011001100000000000000000Number

-------------22x1.11000011+2-6x1.11001-2-3x1.110011Exponent

-----------1000000101111001011111003.2存储实数(21)Example26将下面IEEE标准存储的数写成规范化后的二进制数.

1

0111110011001100000000000000000Solution符号是负的.指数是–3(124–127).该数规范化后是:

-2-3x1.1100113.2存储实数(22)3.2存储实数(23)1)找到S、E和M的值2)如果S=0,将符号设为正号,否则设为负号3)找到位移量(E-127)4)对尾数去规范化5)将去规范化的数值转换为十进制以求出绝对值将存储为IEEE浮点格式的数字还原6)加上符号Example27位模式(1100101000000000011100010001111)2以余127码格式存储于内存中,求该数值十进制计数法的值。3.2存储实数(24)3.2存储实数(25)Solution1)110010100000000001110001000011112)符号为负3)位移量=E-127=148-127=214)将(1.00000000111000100001111)X2215)二进制数是(1000000001110001000011.11)2绝对值是2104378.75该数字是-2104378.753.2存储实数(26)几个概念上溢和下溢存储零截断误差3.2存储实数(27)上溢下溢上溢0可表示的负数可表示的正数0.0如何存储?1111111111111111.11111111111如何存储?00000000000000000000000000000000010001101111111111111111111111113.2存储实数(28)上一章作业问题36,37,4128(d)3.3存储文本(1)位模式到底需要多少位来表示一个符号?英文和中文那一种语言需要的位模式长度更长?“文本”的表示Table2.1NumberofsymbolsandbitpatternlengthNumberofSymbols

---------------------24816…

128256…

65,536BitPatternLength

---------------------1234…

78…

163.3存储文本(2)ASCII(AmericanStandardCodeforInformationInterchange)美国信息交换标准码(7位)请查出1~10的ASCII码?(336页)请查出ESCDLECRBS的ASCII码?3.3存储文本(3)BYTE用ASCII码表示查336页的ASCII码表,看是否正确?请告诉我用16进制表示good和GOOD的ASCII码?67H,6FH,6FH,64H47H,4FH,4FH,44H3.3存储文本(4)ASCII码可否用于表示数?为何不用ASCII码表示数?65535用ASCII码存储需多少字节,如果用二进制无符号整数表示需多少字节?3.3存储文本(5)扩展ASCII码(8位)(ExtendedASCII)EBCDIC码(8位)(Extendedbinarycodeddecimalinterchangecode)Unicode码(32位)统一字符编码标准3.3存储文本(6)3.4存储音频(1)“音频”的表示26.5,27.8,30.5,28.3,…..27,28,31,28,…..00011011,00011100,00011111,00011100…..3.4存储音频(2)值最大值最小值t1s值最大值最小值t1s几个概念量化编码每样

温馨提示

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

最新文档

评论

0/150

提交评论