第1章数据的表示与编码优秀PPT.ppt
第1章数据的表示与编码现在学习的是第1页,共63页7/11/2009 10:11 AM第0章 绪论2这次课的主要内容这次课的主要内容1计算机中的计算机中的数和数制数和数制 2数值的表示数值的表示与运算与运算3非数值信息非数值信息的编码的编码现在学习的是第2页,共63页第一节第一节 计算机中的数和数制计算机中的数和数制现在学习的是第3页,共63页7/11/2009 10:11 AM第0章 绪论4 1.1.1 进位基数和位的权数进位基数和位的权数基数:计数制中用到的数码的个数,用基数:计数制中用到的数码的个数,用R表示。表示。位权:以基数为底的指数位权:以基数为底的指数Ri,指数的幂是数位的序号。,指数的幂是数位的序号。对一个数对一个数S,其基数为,其基数为R,则:,则:基数权数码现在学习的是第4页,共63页7/11/2009 10:11 AM第0章 绪论5 1.1.2 计算机常用的各种进制数计算机常用的各种进制数1 十进制十进制 每位数符为每位数符为09,逢十进一。,逢十进一。N10=2 二进制二进制每位数符为每位数符为0或或1,逢二进一。,逢二进一。N2=3 八进制八进制 每位数符为每位数符为07,逢八进一。,逢八进一。N8=4 十六进制十六进制每位数符为每位数符为09,AF,逢十六进一。,逢十六进一。N16=现在学习的是第5页,共63页7/11/2009 10:11 AM第0章 绪论6 1.1.2 计算机常用的各种进制数计算机常用的各种进制数进位制进位制二进制二进制八进制八进制十进制十进制十六进制十六进制规则规则逢二进一逢二进一逢八进一逢八进一逢十进一逢十进一逢十六进一逢十六进一基数基数R=2R=8R=10R=16基本符号基本符号0,10,1,2,70,1,2,90,1,.,9,A,.,F权权2i8i10i16i形式表示形式表示BODH现在学习的是第6页,共63页7/11/2009 10:11 AM第0章 绪论7 1.1.2 计算机常用的各种进制数计算机常用的各种进制数十进制二进制八进制十六进制000011112102231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F现在学习的是第7页,共63页7/11/2009 10:11 AM第0章 绪论8 1.1.3 各种数制间的转换各种数制间的转换二、八、十六进制数转换为十进制数二、八、十六进制数转换为十进制数十进制数转换为二、八、十六进制数十进制数转换为二、八、十六进制数 十进制数转换为二进制十进制数转换为二进制 十进制数转换为八进制十进制数转换为八进制 十进制数十六进制数十进制数十六进制数二进制数和八进制数、十六进制数的转换二进制数和八进制数、十六进制数的转换 二进制数转换为八、十六进制数二进制数转换为八、十六进制数 八、十六进制数转换为二进制数八、十六进制数转换为二进制数现在学习的是第8页,共63页7/11/2009 10:11 AM第0章 绪论9 1.1.3 各种数制间的转换各种数制间的转换1 二、八、十六进制数转换为十进制数二、八、十六进制数转换为十进制数转换规则:转换规则:按权展开后,再求和。按权展开后,再求和。现在学习的是第9页,共63页7/11/2009 10:11 AM第0章 绪论10 1.1.3 各种数制间的转换各种数制间的转换1 二、八、十六进制数转换为十进制数二、八、十六进制数转换为十进制数例例1:将:将(110111.101)2转换为十进制数转换为十进制数解:解:(110111.101)2 =1 25 1 24 0 23 1 22 1 21 1 20 1 2-1 0 2-2 1 2-3 =(55.625)10例例2:将:将(547.6)8转换为十进制数转换为十进制数解:解:(547.6)8 =582+481+780+68-1 =(359.75)10例例3:将:将(C6E.A2)16转换为十进制数转换为十进制数解:解:(C6E.A2)16 =12162+6161+14160+1016-1+216-2 =(3182.6328125)10现在学习的是第10页,共63页7/11/2009 10:11 AM第0章 绪论11 1.1.3 各种数制间的转换各种数制间的转换2 十进制数转换为二、八、十六进制数十进制数转换为二、八、十六进制数(1)十进制数转换为二进制数)十进制数转换为二进制数转换规则:转换规则:任一十进制数任一十进制数X,可以表示为,可以表示为X=X整数整数+X小数小数。将这两部分分开转换。将这两部分分开转换整数部分的转换:整数部分的转换:采用采用“除除2求余法求余法”,转换方法为:将,转换方法为:将X整数整数连连续用续用2除,求得余数(除,求得余数(1或或0)分别为)分别为K0、K1、K2、,直到商为,直到商为0,所有余数排列,所有余数排列Kn-1Kn-2K2K1K0 即为所转换的二进制整数部分。即为所转换的二进制整数部分。小数部分的转换:小数部分的转换:采用采用“乘乘2取整法取整法”。转换方法为:连续用。转换方法为:连续用2乘乘X小数小数,依次求得各整数位(,依次求得各整数位(0或或1)K-1、K-2、K-m,直到乘积,直到乘积的小数部分为的小数部分为0。在小数转换过程中,出现。在小数转换过程中,出现Fi恒不为恒不为0时,可按精度时,可按精度要求确定二进制小数的位数。要求确定二进制小数的位数。现在学习的是第11页,共63页7/11/2009 10:11 AM第0章 绪论12 1.1.3 各种数制间的转换各种数制间的转换2、十进制数转换为二、八、十六进制数、十进制数转换为二、八、十六进制数例例4:求:求(65)10的二进制表示的二进制表示解:除以解:除以2 商商Qi 余数余数Ki 65/2 32 K0=1 32/2 16 K1=0 16/2 8 K2=0 8/2 4 K3=0 4/2 2 K4=0 2/2 1 K5=0 1/2 0 K6=1 (65)10=(1000001)2 例例5 求求(0.6875)10的二进制值的二进制值解:乘以解:乘以2 小数小数Fi 整数整数Ki 0.68752 0.3750 K-1=1 0.37502 0.7500 K-2=0 0.75002 0.5000 K-3=1 0.50002 0.0000 K-4=1 (0.6875)10=(0.1011)2现在学习的是第12页,共63页7/11/2009 10:11 AM第0章 绪论13 1.1.3 各种数制间的转换各种数制间的转换2 十进制数转换为二、八、十六进制数十进制数转换为二、八、十六进制数(2)十进制数转换为八、十六进制数)十进制数转换为八、十六进制数转换规则:转换规则:将十进制数转换为八进制数、十六进制数时,使用的方法与将十进制数转换为八进制数、十六进制数时,使用的方法与十进制数转换成二进制数的方法基本相同,只是求整数部分十进制数转换成二进制数的方法基本相同,只是求整数部分时是用商除以时是用商除以8或或16,取其余数;小数部分改用乘以,取其余数;小数部分改用乘以8或或16,取其整数即可。取其整数即可。现在学习的是第13页,共63页7/11/2009 10:11 AM第0章 绪论14 1.1.3 各种数制间的转换各种数制间的转换2 十进制数转换为二、八、十六进制数十进制数转换为二、八、十六进制数100D=144O=64H例例 100.345D=1100100.01011B2 1.040.690 0.7601.3800.3452 2 21.520 2 八进制八进制100408128184110025022521226232100010011201001664616十六进制十六进制现在学习的是第14页,共63页7/11/2009 10:11 AM第0章 绪论15 1.1.3 各种数制间的转换各种数制间的转换3 二进制数转换为八、十六进制数二进制数转换为八、十六进制数转换规则:转换规则:二进制数表示为(二进制数表示为(N整数整数+N小数小数),例如,),例如,(11001.01)2整数部分:从右向左按三整数部分:从右向左按三(四四)位分组,不足补零,然后按三位分组,不足补零,然后按三(四四)位转换为相应进制数。位转换为相应进制数。小数部分:从左向右按三小数部分:从左向右按三(四四)位分组,不足补零,然后按三位分组,不足补零,然后按三(四四)位转换为相应进制数。位转换为相应进制数。现在学习的是第15页,共63页7/11/2009 10:11 AM第0章 绪论16 1.1.3 各种数制间的转换各种数制间的转换3 二进制数转换为八、十六进制数二进制数转换为八、十六进制数二进制转换为八进制举例:二进制转换为八进制举例:例例6 二进制数二进制数(10011001011.10110101)2 (010 011 001 011.101 101 010)2=(2313.552)8 2 3 1 3 5 5 2 二进制转换为十六进制举例:二进制转换为十六进制举例:例例7 二进制数二进制数(1001011.110101)2 (0100 1011.1101 0100)2=(4B.D4)16 4 B D 4现在学习的是第16页,共63页7/11/2009 10:11 AM第0章 绪论17 1.1.3 各种数制间的转换各种数制间的转换4 八、十六进制数转换为二进制数八、十六进制数转换为二进制数转换规则:转换规则:二进制数表示为(二进制数表示为(N整数整数+N小数小数),例如,),例如,(11001.01)2整数部分:从右向左按一位八整数部分:从右向左按一位八(十六十六)进制数转换为三进制数转换为三(四四)位二进位二进制数。制数。小数部分:从左向右按一位八小数部分:从左向右按一位八(十六十六)进制数转换为三进制数转换为三(四四)位二进位二进制数。制数。现在学习的是第17页,共63页7/11/2009 10:11 AM第0章 绪论18 1.1.3 各种数制间的转换各种数制间的转换4 八、十六进制数转换为二进制数八、十六进制数转换为二进制数例例8 八进制数八进制数(1365.24)8 转换为二进制数转换为二进制数 (1365.24)8=(001 011 110 101.010 100)2 =(1011110101.0101)2 例例9 十六进制数十六进制数(FB4.5C)16 转换为二进制数转换为二进制数 (FB4.5C)16=(1111 1011 0100.0101 1100)2 =(111110110100.010111)2 现在学习的是第18页,共63页7/11/2009 10:11 AM第0章 绪论19计算机采用二进制编码计算机采用二进制编码计算机采用二进制编码计算机采用二进制编码计算机内部采用计算机内部采用二进制二进制表示各类数据。这是因为:在二进制系统表示各类数据。这是因为:在二进制系统中,只有两个数字:中,只有两个数字:0 0和和1 1,因而二进制数在物理上容易实现,因而二进制数在物理上容易实现,并且运算规则简单,可靠性强。并且运算规则简单,可靠性强。计算机中的数据可以分为计算机中的数据可以分为数值型数据数值型数据和和非数值型数据非数值型数据两种。对于数两种。对于数值型数据,我们可以通过进制转换原则来完成转换;而对于非数值型值型数据,我们可以通过进制转换原则来完成转换;而对于非数值型数据,则必须制定特定的二进制编码才能解决,如字符型数值数据,则必须制定特定的二进制编码才能解决,如字符型数值0909、英文字符、汉字、声音、图形、图像等英文字符、汉字、声音、图形、图像等 。1 0 1 0 0 1 0 1现在学习的是第19页,共63页7/11/2009 10:11 AM第0章 绪论20采用二进制后的一个问题采用二进制后的一个问题采用二进制后的一个问题采用二进制后的一个问题在在我我们们前前面面的的例例子子里里,b(空空格格)的的作作用用很很重重要要,它它表表示示着着一一个个数的边界。如果没有了它怎么办?数的边界。如果没有了它怎么办?在在计计算算机机中中的的做做法法是是:预预先先规规定定数数据据的的表表示示单单位位。这这样样,数数据据就就不不需需要要用用特特殊殊的的符符号号来来表表示示它它的的边边界界,因因为为它它所所在在的的那那个个单单位位的的边边界界,就是这个数据的边界。就是这个数据的边界。在计算机中有这样几个基本单位:在计算机中有这样几个基本单位:位位(bit):1 或者或者 0;字节字节(byte):8bits(可表示(可表示28(256)个不同的数);个不同的数);字字(word):与与具具体体的的计计算算机机有有关关,如如:8bits、16bits、32bits、64bits等等。它它的的长长度度为为对对应应计计算算机机的的字字长长,相相当当于于在在对应的图灵机中,有这么多个读写头同时读写。对应的图灵机中,有这么多个读写头同时读写。现在学习的是第20页,共63页7/11/2009 10:11 AM第0章 绪论21计算机存储容量的常用表示单位计算机存储容量的常用表示单位计算机存储容量的常用表示单位计算机存储容量的常用表示单位最小的数据单位:最小的数据单位:位(bit)bit)最基本的存储容量单位:最基本的存储容量单位:字节(Byte)Byte)其它存储容量单位:其它存储容量单位:KB、MB、GB、TB1B=8bit1KB=1024B1MB=1024KB1GB=1024MB1TB=1024GB字节(字节(ByteByte)7 6 5 4 3 2 1 0位(位(BitBit)现在学习的是第21页,共63页第二节第二节 数值数据的表示和运算数值数据的表示和运算现在学习的是第22页,共63页7/11/2009 10:11 AM第0章 绪论23计算机中二进制数的四则运算计算机中二进制数的四则运算仿照十进制数的运算规则,可以做二进制数的加法。仿照十进制数的运算规则,可以做二进制数的加法。用计算机做二进制数的减法:用计算机做二进制数的减法:等一会儿回答。等一会儿回答。用计算机做二进制数的乘法:用计算机做二进制数的乘法:把被乘数累加乘数那么多次即可(例:把被乘数累加乘数那么多次即可(例:2*3=2+2+2)。)。用计算机做二进制数的除法:用计算机做二进制数的除法:反复在被除数中减去除数、直到小于除数,减的次数为商,剩反复在被除数中减去除数、直到小于除数,减的次数为商,剩下为余数(例:下为余数(例:7/3,7-3-3=1,商为,商为2,余数为,余数为1)。)。11100+)110111 101001116+8+4=2832+16+4+2+1=5564+16+2+1=83现在学习的是第23页,共63页7/11/2009 10:11 AM第0章 绪论24 1.2.1 整数的表示整数的表示1 无符号整数无符号整数 机器字长的所有位都表示数值大小机器字长的所有位都表示数值大小,步骤:,步骤:首先将整数转换为二进制形式;首先将整数转换为二进制形式;如果二进制位数不足位,则在二进制的左边补如果二进制位数不足位,则在二进制的左边补0。例将例将9存储在存储在8位字长的存储单元中。位字长的存储单元中。解:首先将解:首先将9转换成二进制数转换成二进制数1001;然后高位补;然后高位补4个个0使总位数使总位数为为8,得到,得到00001001;最后将该数存储在存储单元中。;最后将该数存储在存储单元中。现在学习的是第24页,共63页7/11/2009 10:11 AM第0章 绪论25 1.2.1 整数的表示整数的表示2 有符号整数有符号整数 在数据的最高位为符号位,在数据的最高位为符号位,0表示表示“正数正数”,1表示表示“负数负数”。符号位之符号位之后的那些位为数值位,用来表示这个整数的绝对值。后的那些位为数值位,用来表示这个整数的绝对值。例将例将9存储在存储在8位字长的存储单元中。位字长的存储单元中。解:解:8位中,最高位为符号位,余下位中,最高位为符号位,余下7位是有效数值位;最后存储的结位是有效数值位;最后存储的结果是果是10001001。在计算机中,数可以有三种不同的二进制表示方法(差别在于在计算机中,数可以有三种不同的二进制表示方法(差别在于负数之数值位的表示不同):负数之数值位的表示不同):l 原码表示原码表示l 反码表示反码表示l 补码表示补码表示现在学习的是第25页,共63页7/11/2009 10:11 AM第0章 绪论26 1.2.1 整数的表示整数的表示(1)原码表示)原码表示原码:原码:在给定码长后,根据一个整数的正负填写在给定码长后,根据一个整数的正负填写符号位符号位,再将这个,再将这个整数之整数之绝对值绝对值的二进制表示,按照数值位的长度在前面补足必要的的二进制表示,按照数值位的长度在前面补足必要的 0 后,就得到这个整数的后,就得到这个整数的原码表示。原码表示。若码长为 8,则 123(10)的原码表示是:01111011-123(10)的原码表示是:11111011若码长为 16,则 123(10)的原码表示是:0000000001111011-123(10)的原码表示是:1000000001111011现在学习的是第26页,共63页7/11/2009 10:11 AM第0章 绪论27 1.2.1 整数的表示整数的表示(1)原码表示)原码表示原码表示的计算公式是:原码表示的计算公式是:对于整数对于整数 X,设,设 X原原是它的原码表示,是它的原码表示,n 是码长,则是码长,则 X0 X 2n-1-1X原原 =2n-1+|X|-(2n-1-1)X 00 有两种原码表示:有两种原码表示:0000000010000000当当 n=8,则,则 X原原的表示范围是的表示范围是 127127 。现在学习的是第27页,共63页7/11/2009 10:11 AM第0章 绪论28 1.2.1 整数的表示整数的表示(2)反码表示)反码表示规定:规定:l 一个正整数的反码表示与其原码表示相同;一个正整数的反码表示与其原码表示相同;l 一个负整数的反码表示:对其原码表示的数值位进行一个负整数的反码表示:对其原码表示的数值位进行按位变按位变反反(按位将(按位将 1 换成换成 0、将、将 0 换成换成 1)的结果。)的结果。例如(若码长为例如(若码长为 8):):(26)(反)(反)=(26)(原)(原)=0 0011010(-26)(反)(反)=11100101 (10011010 11100101)现在学习的是第28页,共63页7/11/2009 10:11 AM第0章 绪论29 1.2.1 整数的表示整数的表示(2)反码表示)反码表示反码表示的计算公式是:反码表示的计算公式是:对于整数对于整数 X,设,设 X反反是它的反码表示,是它的反码表示,n 是码长,则是码长,则0 也有两种反码表示:也有两种反码表示:0000000011111111当当 n=8,则,则 X 反反的表示范围是的表示范围是 127127 。X0 X 2n-1-1X反反 =2n-1-|X|-(2n-1-1)X 0现在学习的是第29页,共63页7/11/2009 10:11 AM第0章 绪论30 1.2.1 整数的表示整数的表示(3)补码表示)补码表示刚才留下了一个问题:刚才留下了一个问题:用计算机怎么做二进制数的减法?用计算机怎么做二进制数的减法?如如果果能能够够在在负负数数的的表表示示上上想想办办法法,就就有有可可能能在在计计算算机机中中利利用用二二进进制制加法的部件加法的部件来实现二进制减法,因为:来实现二进制减法,因为:a-b=a+(-b)由由于于乘乘法法可可以以用用加加法法实实现现、除除法法可可以以用用减减法法实实现现,因因而而这这是是为为了了用用统一的部件统一的部件来进行二进制数的四则运算。来进行二进制数的四则运算。回回顾顾第第一一次次课课:计计算算机机最最善善于于做做大大量量的的、简简单单的的、重重复复的的工工作,因为:作,因为:The computer is a fast,stupid machine.支持这种统一处理的基础,是计算机中数的支持这种统一处理的基础,是计算机中数的补码表示补码表示。现在学习的是第30页,共63页7/11/2009 10:11 AM第0章 绪论31 1.2.1 整数的表示整数的表示我们先来看一个例子我们先来看一个例子9 9 9 9 9 9 9(汽车上的里程表)(汽车上的里程表)(3)补码表示)补码表示00000001 2 3现在学习的是第31页,共63页7/11/2009 10:11 AM第0章 绪论32(3)补码表示)补码表示在在这这个个例例子子中中,当当里里程程表表上上的的数数字字是是 999999.9 时时,再再行行进进 0.1 公里,里程表显示的是公里,里程表显示的是 000000.0。如如果果我我们们只只看看整整数数部部分分:由由于于 999999+1=000000,(从从仪仪表表盘盘上上看看到到的的结结果果),所所以以从从算算术术运运算算的的角角度度看看,这这里里999999 的的作作用用相当于相当于-1。这这就就说说明明,当当限限制制了了数数据据的的表表示示长长度度时时,要要得得到到一一个个与与正正整整数数k对对应应的的负负数数表表示示,可可以以认认为为:要要得得到到的的那那个个数数加加上上这这个正整数之后等于个正整数之后等于 0。我们称之为求补。我们称之为求补。在在上上面面的的例例子子中中,要要得得到到 1 的的负负数数表表示示-1,就就是是看看哪哪个个数数加加上上 1 后等于后等于 0。这个数便是这个数便是 999999。Why?1.2.1 整数的表示整数的表示现在学习的是第32页,共63页7/11/2009 10:11 AM第0章 绪论33“|-n|”|n|00初等数学告诉我们:一个有理数是数轴上的一个点。初等数学告诉我们:一个有理数是数轴上的一个点。由由于于数数轴轴是是无无限限长长的的,所所以以用用这这个个点点与与数数 0 所所在在的的点点之之间间的的距距离离(绝对值)与方向(正负),来唯一地表示这个数:(绝对值)与方向(正负),来唯一地表示这个数:-nn当当“数数轴轴”为为有有限限长长时时,还还可可以以用用另另一一种种方方法法来来唯唯一一地地表表示示负数的绝对值:负数的绝对值:-nn|-n|n|距离越小,绝对值越小距离越小,绝对值越小距离越小,绝对值越小距离越小,绝对值越小 距离越大,绝对值越小距离越大,绝对值越小距离越大,绝对值越小距离越大,绝对值越小求补就是求求补就是求求补就是求求补就是求“|-“|-n|”n|”。=(3)补码表示)补码表示 1.2.1 整数的表示整数的表示现在学习的是第33页,共63页7/11/2009 10:11 AM第0章 绪论34回到给定码长的二进制表示上来:回到给定码长的二进制表示上来:例如,当码长为例如,当码长为 8(即数值位数为(即数值位数为 7),则),则 26(10)=0011010那么,要得到那么,要得到-26(10),就是求一个二进制数,就是求一个二进制数 c:使得:使得:c+0011010=0000000这样的这样的 c 就是就是|-26(10)|的二进制表示:的二进制表示:1100110因为:因为:1100110+)0011010 0000000因码长有限,因码长有限,进位被丢弃进位被丢弃(3)补码表示)补码表示 1.2.1 整数的表示整数的表示现在学习的是第34页,共63页7/11/2009 10:11 AM第0章 绪论35规定:规定:一个正整数的补码表示与它的原码表示相同;一个正整数的补码表示与它的原码表示相同;一个负整数的补码表示:符号位为一个负整数的补码表示:符号位为 1,数值位是其绝对值的求补结果。,数值位是其绝对值的求补结果。对于一个负整数,怎样求它的补码表示?对于一个负整数,怎样求它的补码表示?一条简单规则:一条简单规则:对其原码表示的数值位按位变反后加对其原码表示的数值位按位变反后加 1。例:当码长为例:当码长为 8,求,求-26(10)的补码表示(的补码表示(11100110):):原码表示是:原码表示是:10011010按位变反后:按位变反后:11100101加加 1 后得到:后得到:11100110,即得到其补码表示。,即得到其补码表示。(3)补码表示)补码表示 1.2.1 整数的表示整数的表示现在学习的是第35页,共63页7/11/2009 10:11 AM第0章 绪论36补码表示的计算公式是:补码表示的计算公式是:对于整数对于整数 X,设,设 X补补是它的补码表示,是它的补码表示,n 是码长,则是码长,则0 只有一种补码表示:只有一种补码表示:00000000当当 n=8,则,则 X补补的表示范围是的表示范围是 -128,127 。X0 X 2n-1-1X补补 =2n-|X|-2n-1 X 0(3)补码表示)补码表示 1.2.1 整数的表示整数的表示现在学习的是第36页,共63页7/11/2009 10:11 AM第0章 绪论37121234567891011121234567891011另一个例子另一个例子另一个例子另一个例子3583-781212345678910111212345678910118-448+84 1.2.1 整数的表示整数的表示现在学习的是第37页,共63页7/11/2009 10:11 AM第0章 绪论38补码运算规则补码运算规则补码运算规则补码运算规则已经证明,对于数已经证明,对于数 X 和和 Y,(X+Y)(补)(补)=X(补)(补)+Y(补)(补),(X-Y)(补)(补)=X(补)(补)+(-Y)(补)(补)两个数相加减,只需进行两个数相加减,只需进行包括符号位在内的补码相加包括符号位在内的补码相加:(-27)(补)(补)=11100101 (10011011 11100100 11100101)(-1)(补)(补)=11111111 (10000001 11111110 11111111)(-26)(补)(补)=11100110 (10011010 11100101 11100110)(-25)(补)(补)=11100111 (10011001 11100110 11100111)26-27=-1 00011010+)11100101 1111111126-26=0 00011010+)11100110 0000000026-25=1 00011010+)11100111 00000001 1.2.1 整数的表示整数的表示现在学习的是第38页,共63页7/11/2009 10:11 AM第0章 绪论39 1.2.2 整数的表示整数的表示三种编码的比较:三种编码的比较:三种编码的比较:三种编码的比较:1 1、三种编码(原码、反码、补码)的最高位都是符号位。三种编码(原码、反码、补码)的最高位都是符号位。2 2、当真值为正时,三种编码的符号位都用当真值为正时,三种编码的符号位都用0 0表示,数值部分与真值相表示,数值部分与真值相同。同。即它们的表示方法是相同的。即它们的表示方法是相同的。3 3、当真值为负时,三种编码的符号位都用、当真值为负时,三种编码的符号位都用1 1表示,但数值部分的表示,但数值部分的表示各不相同,数值部分存在这样的关系:表示各不相同,数值部分存在这样的关系:补码是原码的补码是原码的“求反加求反加1 1”(整数整数),或者,或者“求反末位加求反末位加1 1”(小数小数);反码是原码的反码是原码的“每位求每位求反反”。4 4、它们所能表示的数据范围基本一样。它们所能表示的数据范围基本一样。现在学习的是第39页,共63页7/11/2009 10:11 AM第0章 绪论40溢出溢出溢出溢出在现代计算机中,都有对溢出的保护设置,当发生溢出时,机器将自动在现代计算机中,都有对溢出的保护设置,当发生溢出时,机器将自动停止当前运算,并报警。停止当前运算,并报警。(-100)-100 10011100+)10011100 00111000100+100 01100100+)01100100 11001000溢出溢出 1.2.1 整数的表示整数的表示注意,当运算结果的绝对值超过了数值位的表示范围时,可能出现注意,当运算结果的绝对值超过了数值位的表示范围时,可能出现溢出溢出(overflow)。例如:。例如:(100)(补)(补)=01100100(-100)(补)(补)=10011100 (11100100 10011011 10011100)现在学习的是第40页,共63页7/11/2009 10:11 AM第0章 绪论41 1.2.2 实数的表示实数的表示实数的表示实数的表示l 定点表示定点表示定点小数定点小数:小数点固定在最高位之前,则该数是一个纯小数:小数点固定在最高位之前,则该数是一个纯小数(定定点小数点小数)。定点整数定点整数:小数点定在尾数最末位之后,表示一个纯整数:小数点定在尾数最末位之后,表示一个纯整数(定点整定点整数数)。l 浮点表示浮点表示任何一个二进制数任何一个二进制数N均可表示为均可表示为N=2EM,其中,其中E是一个二进是一个二进制整数,称为数制整数,称为数N的阶码,的阶码,M是二进制小数,称为数是二进制小数,称为数N的尾的尾数。数。E和和M可正可负。可正可负。现在学习的是第41页,共63页7/11/2009 10:11 AM第0章 绪论42 1.2.2 实数的表示实数的表示为了使表示法的固定部分统一,科学计数法(十进制)和浮点为了使表示法的固定部分统一,科学计数法(十进制)和浮点表示法(二进制)都在小数点左边使用了唯一的非零数码。这称为表示法(二进制)都在小数点左边使用了唯一的非零数码。这称为规范化规范化。计算机表示实数时,只存储实数的三部分信息:计算机表示实数时,只存储实数的三部分信息:符号,指数,和尾符号,指数,和尾数数(小数点右边的位)。小数点和定点部分左边的位(小数点右边的位)。小数点和定点部分左边的位1并没有存储并没有存储他们是他们是隐含的。隐含的。例如,实数例如,实数1000111.0101规范化后为:规范化后为:26 1.0001110101,在计算机中表示为:在计算机中表示为:+26 1.0001110101 +6 0001110101 符号符号 指数指数 尾数尾数现在学习的是第42页,共63页7/11/2009 10:11 AM第0章 绪论43 1.2.2 实数的表示实数的表示定点表示法与浮点表示法的比较:定点表示法与浮点表示法的比较:表示的数据范围不同表示的数据范围不同 定点数:较小定点数:较小;浮点数:较大。浮点数:较大。运算规则的复杂性不同运算规则的复杂性不同定点数:较简单定点数:较简单;浮点数:较复杂。浮点数:较复杂。精度不同:精度不同:规格化浮点数的精度远远大于定点数。规格化浮点数的精度远远大于定点数。现在学习的是第43页,共63页第三节第三节 非数值信息的编码非数值信息的编码现在学习的是第44页,共63页7/11/2009 10:11 AM第0章 绪论45l计计算算机机能能够够存存储储、处处理理和和传传送送多多种种信信息息,因因此此,只只能能表表示示数数是是不不够够的的,还需要表示符号、文字、声音、视频图像等类信息,即非数值型数据。还需要表示符号、文字、声音、视频图像等类信息,即非数值型数据。l由由于于计计算算机机最最终终只只能能用用二二进进制制来来存存储储、处处理理和和传传送送各各类类信信息息,因因此此必必须须事事先先制制定定符符号号、文文字字的的二二进进制制表表示示规规则则,以以便便在在不不同同的的计计算算机机之之间间流流通通。即即使使用用不不同同的的编编码码来来表表示示和和存存储储数数字字、文字符号、声音、图片和图像(视频)信息文字符号、声音、图片和图像(视频)信息。非数值信息的编码非数值信息的编码现在学习的是第45页,共63页7/11/2009 10:11 AM第0章 绪论46字符的编码字符的编码ASCII码码汉字的编码汉字的编码Unicode码码静态图像的编码静态图像的编码动态数据的编码动态数据的编码 3 非数值信息的编码 1.3 主要内容主要内容现在学习的是第46页,共63页7/11/2009 10:11 AM第0章 绪论47l 美国最先制定了符合他们使用需要的美国美国最先制定了符合他们使用需要的美国标准信息交换标准标准信息交换标准码码(American Standard Code for Information Interchange),),简称简称ASCII码。码。l ASCII 码用一个字节来表示一个符号或字母。这个字节的二进制码用一个字节来表示一个符号或字母。这个字节的二进制表示本身是一个数,称为对应的表示本身是一个数,称为对应的码值码值。l常常规规 ASCII 码码将将这这个个字字节节的的最最高高位位(从从左左边边数数第第一一位位)用用做做奇偶校验,其他奇偶校验,其他 7 位可以表示位可以表示 128 种符号和字母。种符号和字母。l扩扩展展 ASCII 码码将将这这个个字字节节全全部部用用来来表表示示,因因此此可可表表示示 256 种种符符号和字母,其中前号和字母,其中前 128 种与常规种与常规 ASCII 码相同。码相同。l目前常用的是扩展目前常用的是扩展 ASCII 码。码。1.3.1 字符的编码字符的编码ASCII码码现在学习的是第47页,共63页7/11/2009 10:11 AM第0章 绪论48 1.3.1 字符的编码字符的编码ASCII码码现在学习的是第48页,共63页7/11/2009 10:11 AM第0章 绪论49 1.3.1 字符的编码字符的编码ASCII码码从从计计算算机机键键盘盘输输入入的的字字母母、数数字字和和符符号号,都都被被自自动动转转换换成成对应的对应的 ASCII 码值。例如码值。例如(采用扩展(采用扩展 ASCII 码)码):字母字母 R:01010010(2),即,即 82(10)或或 52(16)字母字母 r:01110010(2),即,即 114(10)或或 72(16)数字数字 3:00110011(2),即,即 51(10)或或 33(16)符号符号%:00100101(2),即,即 37(10)或或 25(16)现在学习的是第49页,共63页7/11/2009 10:11 AM第0章 绪论50l汉汉字字也也是是字字符符,与与西西文文字字符符比比较较,汉汉字字数数量量大大,远远比比 256 种种多多,何何况况也也不不能能占占用用 ASCII 码码已已经经使使用用的的码码值值,目目前前采采用用两两个字节来表示一个汉字。个字节来表示一个汉字。l汉汉字字数数量量大大,字字形形复复杂杂,同同音音字字多多,这这就就给给汉汉字字在在计计算算机机内内部部的的存存储储、传传输输、交交换换、输输入入、输输出出等等带带来来了了一一系系列列的的问问题题。汉汉字字的的编编码码规则还没有统一。在我国大陆采用的标准是规则还没有统一。在我国大陆采用的标准是GB2312。1.3.2 汉字的编码汉字的编码 计算机对于汉字的处理流程计算机对于汉字的处理流程现在学习的是第50页,共63页7/11/2009 10:11 AM第0章 绪论51 汉字信息所涉及的编码:汉字信息所涉及的编码:汉字输入编码汉字输入编码微软拼音、智能微软拼音、智能ABCABC、五笔字型输入法等五笔字型输入法等 。国际码(国际码(GB2312-80)用用2 2个字节个字节表示一汉字;每个字节采用表示一汉字;每个字节采用7 7位位编码,最高位为编码,最高位为0 0;包括包括67636763个汉字,其中一级汉字个汉字,其中一级汉字37553755个,二级汉字个,二级汉字30083008个。个。汉字分为汉字分为9494个区,每个区个区,每个区9494个汉字。个汉字。机内码机内码将汉字国标码的两个字节最高位设为将汉字国标码的两个字节最高位设为1后得到。后得到。1.3.2 汉字的编码汉字的编