大学计算机基础:第二章信息的表示与存储_第1页
大学计算机基础:第二章信息的表示与存储_第2页
大学计算机基础:第二章信息的表示与存储_第3页
大学计算机基础:第二章信息的表示与存储_第4页
大学计算机基础:第二章信息的表示与存储_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 信息的表示与存储信息的表示与存储大学计算机基础大学计算机基础第二章 信息的表示与存储 主要内容主要内容 2.1 2.1 二进制编码二进制编码 2.2 2.2 数据转换及其运算数据转换及其运算 2.3 2.3 数据在计算机中的表示方法数据在计算机中的表示方法 2.4 2.4 数据压缩数据压缩 思考:我们日常生活中接触的进制思考:我们日常生活中接触的进制 最常用的十进制最常用的十进制 星期:星期:七进制七进制 小时:小时:2424进制,分钟:进制,分钟:6060进制,秒:进制,秒:6060进制进制 月份:月份:1212进制进制1 1二进制编码2.1 二进制编码及运算理理 解解 0 0

2、 和和 1 1 在计算机中采用二进制在计算机中采用二进制存储和表示信息。存储和表示信息。 二进制数只有两个数码,二进制数只有两个数码,0和和1,低位向高位进位,低位向高位进位是逢二进一,借一当二。是逢二进一,借一当二。 为什么计算机中采用二进制而不采用我们熟悉的十为什么计算机中采用二进制而不采用我们熟悉的十进制计数呢?进制计数呢? 因为计算机中大量的电子元器件一般都具有两种稳因为计算机中大量的电子元器件一般都具有两种稳定状态,如电压的高与低、晶体管的导通与截止,开定状态,如电压的高与低、晶体管的导通与截止,开关的开与关等,这两种状态正好用来表示二进制数的关的开与关等,这两种状态正好用来表示二进

3、制数的两个数码两个数码0和和1。采用二进制使信息数字化容易实现,。采用二进制使信息数字化容易实现,并适合用二值逻辑元件进行表示和处理。并适合用二值逻辑元件进行表示和处理。 另外,二进制数运算规律简单,可靠性高,易于物另外,二进制数运算规律简单,可靠性高,易于物理实现,适合逻辑运算。理实现,适合逻辑运算。 理理 解解 0 0 和和 1 1二进制的优点:二进制的优点: 物理上容易实现,可靠性高,运算规律简单,适合逻辑运算。物理上容易实现,可靠性高,运算规律简单,适合逻辑运算。 1 0 1 0 0 1 0 1 二进制是计算机中采用的计数制。二进制是计算机中采用的计数制。 只有只有0和和1两个数字符号

4、,基数是两个数字符号,基数是“2”,低位向高位进,低位向高位进位规则是位规则是“逢二进一逢二进一”。 二进制数中小数点向右移二进制数中小数点向右移1位,数值就扩大位,数值就扩大2倍;小数倍;小数点向左移点向左移1位,数值就缩小位,数值就缩小2倍。倍。 减法:减法: 0-0=0 0-1=1(有借位)(有借位) 1-0=1 1-1=0 1011+ 1100 10111 1100- 1011 0001 加法:加法: 0+0=0 0+1=1 1+0=1 1+1=0( (有进位有进位) )2 2二进制数的算术运算 在计算机内部,二进制加法是基本运算,而二进制的在计算机内部,二进制加法是基本运算,而二进制

5、的减法则是采用补码运算,将减法转换成加上一个负数来实减法则是采用补码运算,将减法转换成加上一个负数来实现的;二进制乘、除法运算可以通过加、减和移位来实现现的;二进制乘、除法运算可以通过加、减和移位来实现。 例例2.2 例例2.1 11+ 12 232022-3-27 逻辑与:逻辑与:00=0 01=0 10=0 11=13.二进制的逻辑运算二进制的逻辑运算 逻辑或:逻辑或:00=0 01=1 10=1 11=1 逻辑非逻辑非 0 =1 1 =0 逻辑运算是指对某一给定条逻辑运算是指对某一给定条件,判断其是否成立的一种件,判断其是否成立的一种运算。运算结果不表示数值运算。运算结果不表示数值的大小

6、,而是表示条件成立的大小,而是表示条件成立与否。与否。2.2 数制转换及其运算 在讨论数的进位制之前,先介绍进位计数制的在讨论数的进位制之前,先介绍进位计数制的“基数基数”和和“位权位权”的概念。因为无论采用哪种计的概念。因为无论采用哪种计数制表示数据,都涉及到数制表示数据,都涉及到“基数基数”和和“位权位权”。 在日常生活中在日常生活中, 人们除了使用十进制外,也人们除了使用十进制外,也经经常常使用使用其他进制,如其他进制,如六十进制、十二进制等。由六十进制、十二进制等。由于计算机中所有信息都是以二进制数的形式表示于计算机中所有信息都是以二进制数的形式表示和存储的,因此需要了解二进制和其他进

7、制之间和存储的,因此需要了解二进制和其他进制之间的转换与运算的转换与运算。 我们先来看一个例子:十进制数我们先来看一个例子:十进制数 678.34我们怎么能正确识别这个数呢?我们怎么能正确识别这个数呢?根据每个数字所在的位置,我们可以判断数的大小。根据每个数字所在的位置,我们可以判断数的大小。678.3410210110010-110-26*1027*1018*1003*10-14*10-2位权位权任何一种进位计数制表示的数都可以写成按权展开的多项式之和任何一种进位计数制表示的数都可以写成按权展开的多项式之和1. 数的进位计数制数的进位计数制进位计数制定义:进位计数制定义: 进位计数制是一种进

8、位计数制是一种数的表示方法,按进位数的表示方法,按进位的方法来计数。的方法来计数。采用位权表示法采用位权表示法;逢逢r进一。进一。基数:基数:每种进位计数制都有自每种进位计数制都有自己基本的符号,己基本的符号,若某种进位计数若某种进位计数制中使用了制中使用了r个符号(个符号(0 0,1 1,2 2,, ,r -1-1),),r 称为该进位计数称为该进位计数制的基数制的基数。位权:位权:进位制中基数的某次幂进位制中基数的某次幂值称为值称为“位权位权”。r进制inmiirraN1r r进制数进制数N N可表示为:可表示为:v基数:基数:r rvr rn-1n-1,r rn-2n-2,,r,r0 0

9、,r r-1-1,r r-2-2, r r-m-m分别是某位的权分别是某位的权v数码:数码:0 0,1 1,2 2,r-1r-1Nr=an-1rn-1+a1r1+ a0r0+a-1r-1+a-mr-m或r进制数进制数N可以表示为:按权展开的多项式之和可以表示为:按权展开的多项式之和即即;该数各位的数码乘以所在位的权值的和。该数各位的数码乘以所在位的权值的和。6783461071081031041021012.基数位权位权数码数码(1)十进制数v 基数:基数:1010v 10102 2,10101 1,10100 0,1010-1-1,1010-2-2分别是数的百位、十位、分别是数的百位、十位、

10、个位、十分位、百分位的权个位、十分位、百分位的权v 数码:数码:0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9(2)二进制数Naaaaannmm21111001122222二进制数按二进制数按“权权”展开的形式为展开的形式为: :v 基数:基数:2 2v 2 2n-1n-1,2 2n-2n-2,,2,20 0,2,2-1-1,2 2-2 -2 , 2 2-m -m 分别是数某位的权分别是数某位的权v 数码:数码:0 0,1 1用英文字母标识来标识进位制:用英文字母标识来标识进位制:字母字母“D”代表十进制,代表十进制,“B”代表二进制,代表二进制,字母字母“O”

11、代表八进制,代表八进制,“H”代表十六进制。代表十六进制。(3 3)八进制数和十六进制数)八进制数和十六进制数 二进制数书写位数多,难以记忆和识别,为了便于书写和二进制数书写位数多,难以记忆和识别,为了便于书写和记忆,常用八进制数或十六进制数作为二进制数的助记符形式。记忆,常用八进制数或十六进制数作为二进制数的助记符形式。进进 制制十进制十进制二进制二进制八进制八进制十六进制十六进制基基 数数10102 28 81616数字符号数字符号0 09 90 0,1 10 07 70 09 9 A A(1010)B B(1111)C C(1212)D D(1313)E E(1414)F F(1515)

12、2022-3-215十进制数十进制数非十进制数非十进制数非十进制数非十进制数十进制数十进制数二、八、十六进制之间的转换二、八、十六进制之间的转换2. 2. 不同进位计数制间的转换不同进位计数制间的转换2. 不同进位计数制间的转换不同进位计数制间的转换(1) (1) r r进制数(非十进制数)转化成十进制数进制数(非十进制数)转化成十进制数 各种进位制转换为十进制的方法:分别写出各种进位制转换为十进制的方法:分别写出二进制数、八进制数和十六进制数的按权展开式,二进制数、八进制数和十六进制数的按权展开式,计算所得的值,即为转换后的十进制数计算所得的值,即为转换后的十进制数。 其中:其中:ai 为系

13、数(数码)为系数(数码) r r为基数为基数 n n为项数为项数1nmiiirraN例例2.5:(10101)2 = =124+0 23+1 22+0 21+ 120 = 24 +22+1=(21)10举例 例例2.6: (3506.2) 8 = = 383+582 +081 + 6 80 +2 8-1 = 1536+320+6+0.25 = (1862.25)10例例2.7:(A3E.5)16= = 10162+3161+14160+516-1 = 2560+48+14+0.31 = (2622.31)10举例由以上几个例子看出:由由以上几个例子看出:由R进制转换到十进制。进制转换到十进制。

14、可以把小数点作为起点,分成向左右两边进行,可以把小数点作为起点,分成向左右两边进行,即对于其整数部分和小数部分分别转换。即对于其整数部分和小数部分分别转换。即:即: 非十进制数非十进制数 十进制数十进制数(1011.1)223 22 21 20 2-1 2022-3-220 8 75 余数为3(a0) 8 9 余数为1(a1) 8 1 余数为1 (a2) 0结果为:(75)10 =(113)8余数法:余数法:除基数取余数、由下而上排列。例:将十进制的例:将十进制的75转换成八进制转换成八进制十进制整数十进制整数 非十进制整数非十进制整数2022-3-2212 75 1 2 37 1 2 18

15、0 2 9 1 2 4 0 2 2 0 2 1 1 0又例:又例:结果为:(75)10 =(1001011)22022-3-222进位法:进位法:用十进制小数乘基数,当积为0或达到 所要求的精度时,将整数部分由上而下排列。示例:示例: 0.625 2 1.250 整数=1 2 0.50 整数=0 2 1.0 整数=1 小数值=0十进制小数十进制小数 非十进制小数非十进制小数结果为:(0.625)10 =(0.101)2如果十进制的数即有整数也有小数,将其两部分合起即可。如果十进制的数即有整数也有小数,将其两部分合起即可。2022-3-223021005020225012216322120011

16、 0.23 2 0.46 2 0.92 2 1.84例:将(例:将(100.23)10 化为二进制。化为二进制。 0.84 2 1.68 若小数保留若小数保留4 4位:位:结果为结果为:(100.23)10 =(1100100.001)23. 二进制、八进制、十六进制数间的转换 八进制八进制 对应二进制对应二进制00001001201030114100510161107111每每3 3位二进制对应一位八进制数位二进制对应一位八进制数 十六进制十六进制对应二进制对应二进制十六进制十六进制 对应二进制对应二进制0000081000100019100120010A101030011B10114010

17、0C110050101D110160110E111070111F1111每每4 4位二进制对应一位十六进制数位二进制对应一位十六进制数 整数部分从右向左三位并一位整数部分从右向左三位并一位 小数部分从左向右三位并一位小数部分从左向右三位并一位二进制二进制 八进制八进制二、八与十六进制之间的转换二、八与十六进制之间的转换一位拆三位一位拆三位一位拆四位一位拆四位 整数部分从右向左四位并一位整数部分从右向左四位并一位 小数部分从左向右四位并一位小数部分从左向右四位并一位二进制二进制 十六进制十六进制 例例2.10 将二进制数将二进制数10110011.10101转换为八进制数。转换为八进制数。010

18、 110 011.101 010(B)= 263.52(O) 2 6 3 5 2 (高位和低位各补1个0)例例2.11 将二进制数将二进制数1011010101.101011转换为十六进制数。转换为十六进制数。0010 1101 0101.1010 1100 (B)=2D5.AC(H) 2 D 5 A C (高位和低位各补2个0)v 二进制转化成二进制转化成八八(十六十六)进制进制 整数部分:整数部分:小数点为基准小数点为基准从右向左按三从右向左按三(四四)位进行分组位进行分组 小数部分:小数部分:小数点为基准小数点为基准从左向右按三从左向右按三(四四)位进行分组位进行分组 不足补零不足补零例

19、例2.12 将八进制数将八进制数(6415.64)8转换为二进制数。转换为二进制数。 (6415.64)8 =(110 100 001 101.110 100 )2 6 4 1 5 . 6 4例例2.13 将十六进制数将十六进制数(6A1D.C4)16转换为二进制数。转换为二进制数。 (6A1D.C4)16 =(0110 1010 0001 1101.1100 0100 )2 6 A 1 D . C 4 八(十六)进制转换为二进制八(十六)进制转换为二进制 将将八进制数八进制数转换为二进制数转换为二进制数:只需将只需将1 1位八进制数转为位八进制数转为3 3位二进制数位二进制数; 将将十六进制

20、数十六进制数转换为二进制数转换为二进制数:只需将只需将1 1位十六进制数位十六进制数转为转为4 4位二进制数位二进制数. .4.二-十进制数(BCD码)v日常习惯使用十进制,为了让计算机能够识别、存日常习惯使用十进制,为了让计算机能够识别、存储十进制数,向计算机输入数据时仍采用十进制。储十进制数,向计算机输入数据时仍采用十进制。v计算机先将计算机先将十进制按位编码,每位十进制对应十进制按位编码,每位十进制对应4 4位位二进制表示二进制表示,计算机自动将其转换为二进制数,这,计算机自动将其转换为二进制数,这种编码称为种编码称为BCDBCD编码编码( (又称又称 84218421码)。码)。v主要

21、用途帮助计算机自动实现主要用途帮助计算机自动实现十进制向二进制相互十进制向二进制相互转换转换。vBCDBCD码取码取1010种状态表示十进制数码种状态表示十进制数码0 09.9.既具有二进既具有二进制的形式,又具有十进制的特点,逢制的形式,又具有十进制的特点,逢“十十”进位。进位。二-十进制数(BCD码)(75.475.4)D D = =(0111 0101.0100)BCD 0111 0101.0100)BCD (1000 0101.0101)BCD (1000 0101.0101)BCD( 85.5)D( 85.5)D BCDBCD码与二进制之间的转换不码与二进制之间的转换不能直接进行,应

22、先转换为十进能直接进行,应先转换为十进制后再转换为二进制。制后再转换为二进制。2.3 2.3 数据数据在计算机中的表示方法在计算机中的表示方法 主要内容主要内容 1 1. . 计算机中数据的存储单位计算机中数据的存储单位 2. 2. 带符号数的机器数表示带符号数的机器数表示 3. 3. 数的原码、反码和补码表示数的原码、反码和补码表示 4. 4. 定点数与浮点数定点数与浮点数 2.带符号数的表示 数值数据是指通常所说的数或数据,它有正负和大数值数据是指通常所说的数或数据,它有正负和大小之分,有整数和小数之分。小之分,有整数和小数之分。下面介绍带符号数的表示方法。下面介绍带符号数的表示方法。 但

23、是在计算机中是不能存储负号的,只能存储但是在计算机中是不能存储负号的,只能存储0 0和和1.1.因此,就提出一个想法,正、负也要用因此,就提出一个想法,正、负也要用“0”0”和和“1”1”来表示,将表示数的位数拿出来一位表示数的符号。来表示,将表示数的位数拿出来一位表示数的符号。一般指定最左边一位表示数的符号,用一般指定最左边一位表示数的符号,用0 0代表正数,代表正数,用用1 1代表负数。原来八位存储一个数,现在就用七位代表负数。原来八位存储一个数,现在就用七位存储数值了。存储数值了。问题:问题: 十进制数十进制数6 6用八位二进制表示为:用八位二进制表示为:0000011000000110

24、 十进制十进制-6-6如何表示?如何表示? -00000110 -00000110 可以吗?可以吗?2.带符号数的表示 符号位符号位 “0”表示正表示正 、 “1”表示负表示负10000110若一个数用若一个数用8 8位二进制表示,位二进制表示,+6+6和和-6 -6 表示形式为:表示形式为:00000110+6+6-6-6通常称这种符号数字化的数为机器数。通常称这种符号数字化的数为机器数。 数的原码、反码和补码表示数的原码、反码和补码表示 这种用这种用0和和1 表示数的符号的数称为机器数,也称表示数的符号的数称为机器数,也称为数的原码。但是实际上计算机中不是用这种方法为数的原码。但是实际上计

25、算机中不是用这种方法存储有符号数的。为什么呢?存储有符号数的。为什么呢?机器数在进行运算时,若将符号位和数值位同时参机器数在进行运算时,若将符号位和数值位同时参与运算,则会得出错误的结果。与运算,则会得出错误的结果。例例2.122.12: X=+6 XX=+6 X原码原码=00000110=00000110Y=-3 YY=-3 Y原码原码=10000011=10000011X+Y=+6+X+Y=+6+(-3-3)=6-3=3=6-3=3原码相加:得到原码相加:得到-9-9 00000110 00000110 +10000011 +10000011 10001001 10001001 (-9-9

26、)因此,为了运算方便,计算机因此,为了运算方便,计算机中引入了反码和补码的概念,中引入了反码和补码的概念,将加减法运算统一转换为补码将加减法运算统一转换为补码的加法运算。的加法运算。 原码相减:得到原码相减:得到-3-3 0000011000000110 -10000011 -10000011 10000011 10000011 -3 -3 数的原码、反码和补码表示数的原码、反码和补码表示 0X1|X|0=XX=0+7: 0 000 0111 +0:00000000 -7: 1 000 0111 -0:10000000 X原原= 数的原码、反码和补码表示数的原码、反码和补码表示 表示数的范围:

27、表示数的范围: -127 127 1 111 1111 0 111 1111 整数整数X X的原码表示是:整数的符号位用的原码表示是:整数的符号位用“0 0”表示正,表示正,“1 1”表示负,其数值部分是该数的绝对值的二进制表示。表示负,其数值部分是该数的绝对值的二进制表示。在原码表示中,在原码表示中,0 0有有两种表示方法。两种表示方法。正数的原码、反码和补码形式完全相同,而负数则有不同正数的原码、反码和补码形式完全相同,而负数则有不同的表示形式。的表示形式。 (2)反码0X1|X|0=XX=0+7: 0 000 0111 +0: 0 000 0000 -7: 1 111 1000 -0:1

28、 111 1111 X反反=负数的反码是对该数的原码除了负数的反码是对该数的原码除了符号位外各位取反符号位外各位取反。在反码表示中,在反码表示中,0 0有有两种表示方法。两种表示方法。反码是求补码的中间过渡。反码是求补码的中间过渡。补码表示中:补码表示中:0 0有唯一的表示形式,即有唯一的表示形式,即 +0=-0=00000000+0=-0=00000000因此,可以用多出来的编码因此,可以用多出来的编码1000000010000000来扩展补码的表示范围来扩展补码的表示范围值为值为-128-128,最高位,最高位1 1即可看做符号位负数,又可表示为数值。即可看做符号位负数,又可表示为数值。

29、表示数的范围:表示数的范围: -128-128127127+7: 0 000 0111 +0:0 000 0000 0X1|X|+10=XX=0 -7:1 111 1001 -0:0 000 0000 X补补=负数的补码是在其负数的补码是在其反码的基础上末位加反码的基础上末位加1 1。(3)补码例例2.13: 利用补码进行(利用补码进行(+6)+(-6)运算。)运算。X=+6 X原原=00000110 X补补=00000110Y=-6 Y原原=10000110 Y补补=11111010 两数相加两数相加 00000110 +6的补码的补码 +11111010 -6的补码的补码 10000000

30、0 0的补码的补码例例2.14: 利用补码进行(利用补码进行(+6)+(-3)运算。)运算。X=+6 X原原=00000110 X补补=00000110Y=-3 Y原原=10000011 Y补补=11111101 两数相加两数相加 00000110 +6的补码的补码 +11111101 -3的补码的补码 100000011 +3的补码的补码 计算机中数据存储与时钟一样,是个模数系统。超过计算机中数据存储与时钟一样,是个模数系统。超过了它所能表示的最大值后,就又会恢复到初始状态。了它所能表示的最大值后,就又会恢复到初始状态。 当运算结果超出其表示范围时,会产生当运算结果超出其表示范围时,会产生“

31、溢出溢出”(得(得出不正确的结果)。出不正确的结果)。两个两个8位二进制数相加位二进制数相加 1111 1111:255 0000 0001:110000 0000:0数表示的范围受到字长的限制数表示的范围受到字长的限制 若表示一个整数:若表示一个整数: 用用8 8位,位, 最大值为最大值为0111111101111111,即,即2 27 7-1=127-1=127 用用1616位,最大值为位,最大值为01111111111111110111111111111111,即,即2 21515-1=32767-1=327673. 无符号数的表示无符号数的表示 在无符号数据处理的过程中,如不需要设在无

32、符号数据处理的过程中,如不需要设置符号位时,可用全部字长来表示数值大置符号位时,可用全部字长来表示数值大小。如小。如8位无符号数的取值范围是位无符号数的取值范围是0255, 255=2 同样位数的数据在机器中同样位数的数据在机器中,采用无符号表示采用无符号表示或有符号表示其取值范围是不同的。或有符号表示其取值范围是不同的。111111114.4.定点数与浮点数定点数与浮点数 定点整数定点整数 定点数分为定点整数和定点小数。定点数分为定点整数和定点小数。(1)定点数表示小数点固定在机器数小数点固定在机器数的最低位之后的最低位之后整数表示数据精确,数的范围有限。如机器字长16位,补码范围-3276

33、8-32767定点数是指规定小数点固定在某一位置上。定点数是指规定小数点固定在某一位置上。浮点数是指小数点位置可以任意浮动。浮点数是指小数点位置可以任意浮动。符号位4.4.定点数与浮点数定点数与浮点数 S小数点小数点 定点小数定点小数 (1)定点数表示小数点固定在小数点固定在符号位之后符号位之后 定点数表示方法使数的表示范围受到限制。当超定点数表示方法使数的表示范围受到限制。当超出规定的范围时,就无法表示了。因此,就有另出规定的范围时,就无法表示了。因此,就有另外一种表示数的方法,即浮点数。外一种表示数的方法,即浮点数。(2 2)浮点数表示)浮点数表示尾数尾数的位数决定数的精度数的精度阶码阶码

34、的位数决定数的范围数的范围 科学记数法表示:十进制数科学记数法表示:十进制数 -1234.567 可表示为:可表示为: -1234.567 = -1.234567 103 采用以采用以2为底的科学记数法存储:为底的科学记数法存储: N= 数符数符尾数尾数2阶码阶码 (其中:数符(其中:数符0为正,为正,1为负,尾数和阶码都用为负,尾数和阶码都用二进制数二进制数表示)表示)浮点数也称为实数,是指小数点位置不固定的数,浮点数也称为实数,是指小数点位置不固定的数,它既有整数部分又有小数部分。它既有整数部分又有小数部分。利用浮点数可以扩大实数的表示范围。利用浮点数可以扩大实数的表示范围。IEEE 75

35、4标准(美国电气电子工程师协会标准(美国电气电子工程师协会IEEE,1985) 将浮点数分成两类将浮点数分成两类: : 单精度数用单精度数用3232位表示:数符位表示:数符1 1位,阶码位,阶码8 8位,尾数位,尾数2323位位 双精度数用双精度数用6464位表示:数符位表示:数符1 1位位, , 阶码阶码1111位位, ,尾数尾数5252位位 为了处理负指数的情况,实际数据的指数存储时数值加为了处理负指数的情况,实际数据的指数存储时数值加上上127127(2 27 7-1-1)后进行存储。尾数只存储小数部分。)后进行存储。尾数只存储小数部分。 单精度浮点数机内存储格式(占单精度浮点数机内存储

36、格式(占4 4个字节,个字节,3232位)位) 阶码数符尾数1位位8位位23位位由于不同计算机所选的基值、尾数和阶码的长度不同,因此由于不同计算机所选的基值、尾数和阶码的长度不同,因此对浮点数表示有较大差别,这就不利于软件在不同计算机之对浮点数表示有较大差别,这就不利于软件在不同计算机之间的移植。为此,间的移植。为此,1985年,美国电气电子工程师协会年,美国电气电子工程师协会IEEE制制定了定了IEEE 754标准。标准。2.4 非非数值数据的表示与存储数值数据的表示与存储 主要内容主要内容1.1.字符编码字符编码2.2.汉字编码汉字编码3.3.多媒体信息表示多媒体信息表示 计算机除了能处理

37、数值数据外,计算机除了能处理数值数据外,也也能识别各种能识别各种符号、字符,如英文字母、汉字、运算符号等。符号、字符,如英文字母、汉字、运算符号等。这些数据在计算机中有特定的二进制编码这些数据在计算机中有特定的二进制编码,也就是,也就是非数值数据的编码非数值数据的编码。 编码就是按照一定编码要求和规则进行排列,将编码就是按照一定编码要求和规则进行排列,将1和和0组成的符号串赋予一定的含义,符号串的位数组成的符号串赋予一定的含义,符号串的位数决定了可以容纳的编码的数目。在现实生活中,有决定了可以容纳的编码的数目。在现实生活中,有许多编码的例子。例如学校学生学号的编码要根据许多编码的例子。例如学校

38、学生学号的编码要根据招生规模来设定,每一位都被赋予一定的含义。编招生规模来设定,每一位都被赋予一定的含义。编码还必须具有唯一性,在一所学校中,不允许出现码还必须具有唯一性,在一所学校中,不允许出现重复的学号,每个学号唯一的对应一位学生。重复的学号,每个学号唯一的对应一位学生。如,电话号码如,电话号码 128128个常用字符,用个常用字符,用7 7位二进制编码,最高位为位二进制编码,最高位为0 0,从,从0 0到到127127 控制字符控制字符3434个个:0 03232,127127; 普通字符:普通字符:9494个。个。例如:例如:“a a”字符的编码为字符的编码为110 0001110 0

39、001,61H61H, ,对应的十进制数是对应的十进制数是9797; 空格空格 20 20H H 32 32 0 09 9 30H 30H39H 4839H 485757 A AZ Z 41H 41H5AH 655AH 659090 a az z 61H 61H7AH 7AH 97 97122122 1.1.字符编码(字符编码(ASCIIASCII码)码) (American Standard Code for Information Interchange)目前在微型计算机中普遍使用的字符编码是目前在微型计算机中普遍使用的字符编码是ASCII码码,每个字符采用每个字符采用7位二进制数进行编码

40、,位二进制数进行编码,27可以表示可以表示128种符号种符号,包括了计算机处理信息常用的英文字母包括了计算机处理信息常用的英文字母、数字符号、算术与逻辑运算符号、标点符号等。、数字符号、算术与逻辑运算符号、标点符号等。存储字符的编码采用存储字符的编码采用1个字节存储,最高位设置为个字节存储,最高位设置为0.在在ASCII字符编码表字符编码表中中:每种符号唯一的对应着一个编码。数字每种符号唯一的对应着一个编码。数字09、字母、字母AZ和和az在表中都是顺序排列的,小写字母比大写字母的编码值大在表中都是顺序排列的,小写字母比大写字母的编码值大32。这里需要记住几个常用的编码:例如:字符这里需要记住

41、几个常用的编码:例如:字符“0”的编码不是整的编码不是整数,而是二进制的数,而是二进制的00110000(30H),对应十进制数为),对应十进制数为48;字母字母“A”的的ASCII编码是编码是1000001(41H),对应的十进制数),对应的十进制数为为65;“a”的的ASCII编码是编码是1100001(61H),对应的十进制),对应的十进制数为数为97。掌握了这几个字符的编码,就可以容易写出后续字母。掌握了这几个字符的编码,就可以容易写出后续字母数字的数字的ASCII编码。编码。还有一些扩展编码,采用还有一些扩展编码,采用8位编码,可以有位编码,可以有256个编码状态。个编码状态。在了解

42、了数值和字符在计算机中的表示后,同学们在了解了数值和字符在计算机中的表示后,同学们可能会产生一个问题:可能会产生一个问题: 数和字符在计算机中都是二进制数,计算机如何区数和字符在计算机中都是二进制数,计算机如何区分呢?分呢?一个字节的内容是一个字节的内容是65 ,它究竟是数值,它究竟是数值65 ,还是字,还是字符符A?面对孤立的字节,是不能区分,但是存放和使用这面对孤立的字节,是不能区分,但是存放和使用这个数据的软件,会以其他方式进行区分。个数据的软件,会以其他方式进行区分。2.汉字编码 输入码输入码 国标码国标码 字形码字形码 机内码机内码 地址码地址码 汉字输出汉字输出 汉字输入汉字输入

43、拼拼音音五五笔笔等等GB2312-1980GB2312-1980标准汉字标准汉字字符集,规定在不同的字符集,规定在不同的汉字系统中进行汉字交汉字系统中进行汉字交换时使用的编码,简称换时使用的编码,简称国标码,两个字节。国标码,两个字节。汉字在机器内部的表示汉字在机器内部的表示形式,是内部存储,处形式,是内部存储,处理,传输汉字的代码,理,传输汉字的代码,两个字节表示一个汉字两个字节表示一个汉字。为了区分西文字符的机为了区分西文字符的机内码,每个字节的最高内码,每个字节的最高位设为位设为1.1.每个每个汉字字汉字字形码在汉字形码在汉字字库中字库中的相的相对位移地址对位移地址汉字在计算机中也是字符

44、,也要表示为二进制,也应有统一汉字在计算机中也是字符,也要表示为二进制,也应有统一的编码。但是汉字字符多,字型复杂,处理起来比西文字符的编码。但是汉字字符多,字型复杂,处理起来比西文字符复杂的多,要解决输入、存储、交换和显示的编码问题。复杂的多,要解决输入、存储、交换和显示的编码问题。(1) (1) 汉字输入码汉字输入码 数字编码:数字编码: 用用4 4位数字代表一个汉字,如国标区位码、电报码等。位数字代表一个汉字,如国标区位码、电报码等。 GB2312 GB2312标准将标准将67636763个汉字和个汉字和700700多个符号分成多个符号分成9494个区,每个区个区,每个区存放存放9494

45、个汉字和符号。无重码,但是记忆困难。个汉字和符号。无重码,但是记忆困难。 如:大如:大 2083 2083 工工 2504 2504 十进制十进制 拼音编码:拼音编码: 以汉语拼音为基础的输入法,常用有智能以汉语拼音为基础的输入法,常用有智能ABCABC、微软拼音、紫、微软拼音、紫光、全拼、搜狗等。(简单易学,重码,拼音为基础)光、全拼、搜狗等。(简单易学,重码,拼音为基础) 字形编码:字形编码: 以汉字的形状确定的编码,如五笔字型、表形输入法。(无以汉字的形状确定的编码,如五笔字型、表形输入法。(无重码,快,专业人员)重码,快,专业人员) 汉字国标码汉字国标码(GB2312(GB231280

46、80)也称汉字交换码)也称汉字交换码, , 共收共收录录74457445个汉字符号个汉字符号。能表示能表示67636763个常用汉字和一些个常用汉字和一些符号。符号。 每个汉字用两个字节、以每个汉字用两个字节、以1616进制表示。进制表示。 汉字分成汉字分成9494个区个区, ,每个区存放每个区存放9494个汉字或符号。由个汉字或符号。由区号和位号构成区位码。区位码加上区号和位号构成区位码。区位码加上3232就构成国标就构成国标码。码。 计算机是如何区分字符与汉字的编码呢?计算机是如何区分字符与汉字的编码呢? (2)汉字国标码)汉字国标码 为了在计算机中使用汉字,为了在计算机中使用汉字,198

47、1年,国家标准局公布了年,国家标准局公布了GB2312-80标准汉字字符集,规定了在不同的汉字系统中进标准汉字字符集,规定了在不同的汉字系统中进行汉字交换时使用的编码,简称国标码。行汉字交换时使用的编码,简称国标码。 汉字机内码是汉字在机器内部的表示形式,是计汉字机内码是汉字在机器内部的表示形式,是计算机内部存储、处理、传输汉字的代码。算机内部存储、处理、传输汉字的代码。 为区别为区别ASCIIASCII码码, ,机内码采用将汉字国标码的每个机内码采用将汉字国标码的每个字节的字节的最高位设为最高位设为1 1,形成了在计算机内部用来进行,形成了在计算机内部用来进行汉字存储、运算的编码。汉字存储、

48、运算的编码。 以汉字以汉字“大大”为例,国标码为为例,国标码为34 73H34 73H, 二进制:二进制: 0 0011 0100 011 0100 0 0111 0011 111 0011 国标码国标码 二进制:二进制: 1 1011 0100 011 0100 1 1111 0011 111 0011 机内码机内码 B 4 F 3B 4 F 3 34 73H 34 73H80 80H80 80HB4 F3HB4 F3H,得到机内码为,得到机内码为B4F3HB4F3H 国标码转换为机内码:国标码转换为机内码:国标码国标码+8080H=+8080H=机内码机内码(3)汉字机内码)汉字机内码 汉

49、字 区位码 国标码 汉字机内码 大 2083 3473(00110100 01110011)B (10110100 11110011)B 工 2504 1904(00011001 00000100)B (10011001 10000100)B 计算机处理字符数据时,当遇到最高位为计算机处理字符数据时,当遇到最高位为1 1的字节,便的字节,便将该字节连同其后续最高位为将该字节连同其后续最高位为1 1的另一个字节看做一个的另一个字节看做一个汉字;当遇到最高位为汉字;当遇到最高位为0 0时,则可看做一个时,则可看做一个ASCIIASCII码西文码西文字符,这样就实现了汉字、西文字符的共存和区分。字符

50、,这样就实现了汉字、西文字符的共存和区分。(4 4)汉字字形码)汉字字形码汉字的字形码通常有两种表示方式,即点阵和矢量表示方式。汉字的字形码通常有两种表示方式,即点阵和矢量表示方式。 为了能在屏幕上和打印机上输出汉字,必须将汉字的字形为了能在屏幕上和打印机上输出汉字,必须将汉字的字形以点阵的形式事先存入计算机中,字形码也称为汉字的字模以点阵的形式事先存入计算机中,字形码也称为汉字的字模。 点阵字形的构成是把每个汉字放在一个矩型区域里,对每点阵字形的构成是把每个汉字放在一个矩型区域里,对每一个位置用二进制的一个位置用二进制的0和和1来编码,有笔划经过的地方为来编码,有笔划经过的地方为“1”,即发

51、亮,无笔划经过的地方为,即发亮,无笔划经过的地方为“0”,发暗。然后把这样形,发暗。然后把这样形成的二进制序列存储起来,就得到了汉字的点阵字型。成的二进制序列存储起来,就得到了汉字的点阵字型。 当需要显示一个汉字时,根据汉字的机内码,在字库中检当需要显示一个汉字时,根据汉字的机内码,在字库中检索到汉字的字形点阵,把对应的二进制编码序列放入显示存索到汉字的字形点阵,把对应的二进制编码序列放入显示存储器中适当的地方,就可在在屏幕上显示该汉字。储器中适当的地方,就可在在屏幕上显示该汉字。点阵表示:点阵表示:用点阵表示的码,是汉用点阵表示的码,是汉字的输出形式。它把汉字排成点阵字的输出形式。它把汉字排

52、成点阵常用常用16161616、24242424、32323232、48484848或更高二进制位来存储。或更高二进制位来存储。一个一个1616* *1616点阵的汉字字形占用点阵的汉字字形占用3232个个字节,字节,2424* *2424要占用要占用7272个字节。个字节。编码、存储方式简单、无需转换直编码、存储方式简单、无需转换直接输出接输出这类点阵字库汉字最大的缺点是不能放大,一旦放大后就会这类点阵字库汉字最大的缺点是不能放大,一旦放大后就会发现文字边缘的锯齿。发现文字边缘的锯齿。ASCII码的字母存储的也是字母的图片,编码与点阵图片一码的字母存储的也是字母的图片,编码与点阵图片一一对应

53、,需要时调用这个图片,就可以显示对应的字符。一对应,需要时调用这个图片,就可以显示对应的字符。矢量表示:该方式存储的是描述汉字字形的轮廓特征。矢量表示:该方式存储的是描述汉字字形的轮廓特征。 矢量方式与点阵相反,矢量字库保存的是对每一个汉字矢量方式与点阵相反,矢量字库保存的是对每一个汉字的描述信息,比如一个笔划的起始、终止坐标,半径、弧度的描述信息,比如一个笔划的起始、终止坐标,半径、弧度等等。需要时,通过计算机的计算,由汉字字形描述程序生等等。需要时,通过计算机的计算,由汉字字形描述程序生成所需大小和形状的汉字点阵。成所需大小和形状的汉字点阵。 矢量表示方式可以得到高质量的汉字输出,与最终文

54、字矢量表示方式可以得到高质量的汉字输出,与最终文字显示的大小和分辨率无关。显示的大小和分辨率无关。放大后,不会变形。放大后,不会变形。 Unicode 国际标准编码标准国际标准编码标准:为了规范编码,采用双字:为了规范编码,采用双字节编码统一表示世界上的主要文字。节编码统一表示世界上的主要文字。键盘输入与屏幕显示键盘输入与屏幕显示一个汉字从输入到输出,需要经过在键盘上根据输一个汉字从输入到输出,需要经过在键盘上根据输入码输入、计算机将其自动翻译成机内码进行存储入码输入、计算机将其自动翻译成机内码进行存储和传输,最后根据字形码显示或打印出来这样几个和传输,最后根据字形码显示或打印出来这样几个过程

55、。过程。3.多媒体信息表示多媒体信息表示(1)音频信息)音频信息 为了要使计算机能够处理音频信息,便于存储和操作,必须为了要使计算机能够处理音频信息,便于存储和操作,必须首先要将声音的模拟信号转换为数字信号。按照固定的时间间首先要将声音的模拟信号转换为数字信号。按照固定的时间间隔对声波的振幅进行采样,记录所得到的值序列,并转化为二隔对声波的振幅进行采样,记录所得到的值序列,并转化为二进制序列,得到声波的数字化表示。进制序列,得到声波的数字化表示。常见的几种声音文件格式 扩展名扩展名特点特点WAVWAV记录真实声音,对存储空间需求太大记录真实声音,对存储空间需求太大, ,不便于交流和传播不便于交

56、流和传播,是,是WindowsWindows系统使用的标准数字音频波形文件系统使用的标准数字音频波形文件MIDIMIDI比波形文件小,节省空间,但缺乏重现真实自然声音的能比波形文件小,节省空间,但缺乏重现真实自然声音的能力,常用来存放背景音乐力,常用来存放背景音乐WMAWMA与与MP3MP3格式类似的一种新的音频格式,压缩比和音质方面格式类似的一种新的音频格式,压缩比和音质方面都超过了都超过了MP3MP3,适合网络实时低速率传输,适合网络实时低速率传输Mp3Mp3、Mp4Mp4数字音频编码和有损压缩格式,压缩比高,基本不失真数字音频编码和有损压缩格式,压缩比高,基本不失真多媒体信息是指以文字、

57、声音、图形、图像为载体的多媒体信息是指以文字、声音、图形、图像为载体的信息。计算机除了能够处理、存储数值和文字,还能信息。计算机除了能够处理、存储数值和文字,还能处理大量多媒体信息。这些多媒体信息虽然表示形式处理大量多媒体信息。这些多媒体信息虽然表示形式不同,进入到计算机中也要转换为二进制形式表示。不同,进入到计算机中也要转换为二进制形式表示。3.多媒体信息表示多媒体信息表示(2 2)视频信息)视频信息 视频信号数字化的原理与音频信息数字化相似,视频信号数字化的原理与音频信息数字化相似,以一定的频率对单帧视频信号进行采样、量化、编码以一定的频率对单帧视频信号进行采样、量化、编码等,实现模数转换、彩色空间变换和编码压缩等。等,实现模数转换、彩色空间变换和编码压缩等。 扩展名扩展名特点特点AVI 采用有损压缩,压缩比高,解决了音频与视频信息的采用有损压缩,压缩比高,解决了音频与视频信息的同步问题,已成为同步问题,已成为Windows视频文件的标准,用于保存视频文件的标准,用于保存电影、电视信息电影、电视信息MPG按照按照MPEG标准压缩的全视频文件标准压缩的全视频文件WMV独立于编码方式的标准,可以直接在网上实时观看视频独立于编码方式的标准,可以直接在网上实时观看视频,属于网络流媒体,播放器是,属于网络流媒体,播放器是Media Player 。rm 压缩比高,

温馨提示

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

评论

0/150

提交评论