第二章 信息的表示与储存.ppt_第1页
第二章 信息的表示与储存.ppt_第2页
第二章 信息的表示与储存.ppt_第3页
第二章 信息的表示与储存.ppt_第4页
第二章 信息的表示与储存.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第二章 信息的表示与存储,大学计算机基础,第二章 信息的表示与存储,主要内容 2.1 二进制编码 2.2 数据转换及其运算 2.3 数据在计算机中的表示方法 2.4 数据压缩,思考:我们日常生活中接触的进制 最常用的十进制 星期:七进制 小时:24进制,分钟:60进制,秒:60进制 月份:12进制,1二进制编码,2.1 二进制编码及运算,理 解 0 和 1,在计算机中采用二进制存储和表示信息。 二进制数只有两个数码,0和1,低位向高位进位是逢二进一,借一当二。 为什么计算机中采用二进制而不采用我们熟悉的十进制计数呢? 因为计算机中大量的电子元器件一般都具有两种稳定状态,如电压的高与低、晶体管的导通与截止,开关的开与关等,这两种状态正好用来表示二进制数的两个数码0和1。采用二进制使信息数字化容易实现,并适合用二值逻辑元件进行表示和处理。 另外,二进制数运算规律简单,可靠性高,易于物理实现,适合逻辑运算。,理 解 0 和 1,二进制是计算机中采用的计数制。 只有0和1两个数字符号,基数是“2”,低位向高位进位规则是“逢二进一”。 二进制数中小数点向右移1位,数值就扩大2倍;小数点向左移1位,数值就缩小2倍。,减法: 0-0=0 0-1=1(有借位) 1-0=1 1-1=0,加法: 0+0=0 0+1=1 1+0=1 1+1=0(有进位),2二进制数的算术运算,在计算机内部,二进制加法是基本运算,而二进制的减法则是采用补码运算,将减法转换成加上一个负数来实现的;二进制乘、除法运算可以通过加、减和移位来实现。,例2.2,例2.1,2019/11/3,7,逻辑与:00=0 01=0 10=0 11=1,3.二进制的逻辑运算,逻辑或:00=0 01=1 10=1 11=1,逻辑非 0 =1 1 =0,逻辑运算是指对某一给定条 件,判断其是否成立的一种 运算。运算结果不表示数值 的大小,而是表示条件成立 与否。,2.2 数制转换及其运算,在讨论数的进位制之前,先介绍进位计数制的“基数”和“位权”的概念。因为无论采用哪种计数制表示数据,都涉及到“基数”和“位权”。,在日常生活中, 人们除了使用十进制外,也经常使用其他进制,如六十进制、十二进制等。由于计算机中所有信息都是以二进制数的形式表示和存储的,因此需要了解二进制和其他进制之间的转换与运算。,我们先来看一个例子:十进制数 678.34 我们怎么能正确识别这个数呢? 根据每个数字所在的位置,我们可以判断数的大小。,位权,任何一种进位计数制表示的数都可以写成按权展开的多项式之和,1. 数的进位计数制,进位计数制定义: 进位计数制是一种数的表示方法,按进位的方法来计数。 采用位权表示法; 逢r进一。,基数:每种进位计数制都有自己基本的符号,若某种进位计数制中使用了r个符号(0,1,2,,r -1),r 称为该进位计数制的基数。 位权:进位制中基数的某次幂值称为“位权”。,r进制,r进制数N可表示为:,基数:r rn-1,rn-2,,r0,r-1,r-2, r-m分别是某位的权 数码:0,1,2,r-1,Nr=an-1rn-1+a1r1+ a0r0+a-1r-1+a-mr-m,或,r进制数N可以表示为:按权展开的多项式之和 即;该数各位的数码乘以所在位的权值的和。,基数,位权,数码,(1)十进制数,基数:10 102,101,100,10-1,10-2分别是数的百位、十位、个位、十分位、百分位的权 数码:0,1,2,3,4,5,6,7,8,9,(2)二进制数,基数:2 2n-1,2n-2,,20,2-1,2-2 , 2-m 分别是数某位的权 数码:0,1,用英文字母标识来标识进位制: 字母“D”代表十进制,“B”代表二进制, 字母“O”代表八进制,“H”代表十六进制。,(3)八进制数和十六进制数,二进制数书写位数多,难以记忆和识别,为了便于书写和记忆,常用八进制数或十六进制数作为二进制数的助记符形式。,2019/11/3,15,十进制数,非十进制数,非十进制数,十进制数,二、八、十六进制之间的转换,2. 不同进位计数制间的转换,2. 不同进位计数制间的转换,(1) r进制数(非十进制数)转化成十进制数 各种进位制转换为十进制的方法:分别写出二进制数、八进制数和十六进制数的按权展开式,计算所得的值,即为转换后的十进制数。,其中:ai 为系数(数码) r为基数 n为项数,例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进制转换到十进制。可以把小数点作为起点,分成向左右两边进行,即对于其整数部分和小数部分分别转换。 即:,(1011.1)2,23 22 21 20 2-1,2019/11/3,20,8 75 余数为3(a0) 8 9 余数为1(a1) 8 1 余数为1 (a2) 0,结果为:(75)10 =(113)8,余数法:除基数取余数、由下而上排列。 例:将十进制的75转换成八进制,2019/11/3,21,2 75 1 2 37 1 2 18 0 2 9 1 2 4 0 2 2 0 2 1 1 0,又例:,结果为:(75)10 =(1001011)2,2019/11/3,22,进位法:用十进制小数乘基数,当积为0或达到 所要求的精度时,将整数部分由上而下排列。 示例: 0.625 2 1.250 整数=1 2 0.50 整数=0 2 1.0 整数=1 小数值=0,结果为:(0.625)10 =(0.101)2,如果十进制的数即有整数也有小数,将其两部分合起即可。,2019/11/3,23,0,例:将(100.23)10 化为二进制。,结果为:(100.23)10 =(1100100.001)2,3. 二进制、八进制、十六进制数间的转换,每3位二进制对应一位八进制数,每4位二进制对应一位十六进制数,整数部分从右向左三位并一位 小数部分从左向右三位并一位 二进制 八进制,二、八与十六进制之间的转换,整数部分从右向左四位并一位 小数部分从左向右四位并一位 二进制 十六进制,例2.10 将二进制数10110011.10101转换为八进制数。 010 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),二进制转化成八(十六)进制 整数部分:小数点为基准从右向左按三(四)位进行分组 小数部分:小数点为基准从左向右按三(四)位进行分组 不足补零,例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位八进制数转为3位二进制数; 将十六进制数转换为二进制数:只需将1位十六进制数转为4位二进制数.,4.二-十进制数(BCD码),日常习惯使用十进制,为了让计算机能够识别、存储十进制数,向计算机输入数据时仍采用十进制。 计算机先将十进制按位编码,每位十进制对应4位二进制表示,计算机自动将其转换为二进制数,这种编码称为BCD编码(又称 8421码)。 主要用途帮助计算机自动实现十进制向二进制相互转换。 BCD码取10种状态表示十进制数码09.既具有二进制的形式,又具有十进制的特点,逢“十”进位。,二-十进制数(BCD码),(75.4)D =(0111 0101.0100)BCD (1000 0101.0101)BCD ( 85.5)D,BCD码与二进制之间的转换不能直接进行,应先转换为十进制后再转换为二进制。,2.3 数据在计算机中的表示方法,主要内容 1. 计算机中数据的存储单位 2. 带符号数的机器数表示 3. 数的原码、反码和补码表示 4. 定点数与浮点数,2.带符号数的表示,数值数据是指通常所说的数或数据,它有正负和大小之分,有整数和小数之分。 下面介绍带符号数的表示方法。,但是在计算机中是不能存储负号的,只能存储0和1.因此,就提出一个想法,正、负也要用“0”和“1”来表示,将表示数的位数拿出来一位表示数的符号。一般指定最左边一位表示数的符号,用0代表正数,用1代表负数。原来八位存储一个数,现在就用七位存储数值了。,问题: 十进制数6用八位二进制表示为:00000110 十进制-6如何表示? -00000110 可以吗?,2.带符号数的表示,符号位 “0”表示正 、 “1”表示负,若一个数用8位二进制表示,+6和-6 表示形式为:,+6,-6,通常称这种符号数字化的数为机器数。,数的原码、反码和补码表示,这种用0和1 表示数的符号的数称为机器数,也称为数的原码。但是实际上计算机中不是用这种方法存储有符号数的。为什么呢? 机器数在进行运算时,若将符号位和数值位同时参与运算,则会得出错误的结果。,例2.12: X=+6 X原码=00000110 Y=-3 Y原码=10000011 X+Y=+6+(-3)=6-3=3 原码相加:得到-9 00000110 +10000011 10001001 (-9),因此,为了运算方便,计算机中引入了反码和补码的概念,将加减法运算统一转换为补码的加法运算。,原码相减:得到-3 00000110 -10000011 10000011 -3,数的原码、反码和补码表示,数的原码、反码和补码表示,表示数的范围: -127 127 1 111 1111 0 111 1111,整数X的原码表示是:整数的符号位用“0”表示正,“1”表示负,其数值部分是该数的绝对值的二进制表示。,在原码表示中,0有两种表示方法。,正数的原码、反码和补码形式完全相同,而负数则有不同的表示形式。,(2)反码,负数的反码是对该数的原码除了符号位外各位取反。,在反码表示中,0有两种表示方法。,反码是求补码的中间过渡。,补码表示中:0有唯一的表示形式,即 +0=-0=00000000 因此,可以用多出来的编码10000000来扩展补码的表示范围 值为-128,最高位1即可看做符号位负数,又可表示为数值。 表示数的范围: -128127,负数的补码是在其反码的基础上末位加1。,(3)补码,例2.13: 利用补码进行(+6)+(-6)运算。 X=+6 X原=00000110 X补=00000110 Y=-6 Y原=10000110 Y补=11111010 两数相加 00000110 +6的补码 +11111010 -6的补码 100000000 0的补码,例2.14: 利用补码进行(+6)+(-3)运算。 X=+6 X原=00000110 X补=00000110 Y=-3 Y原=10000011 Y补=11111101 两数相加 00000110 +6的补码 +11111101 -3的补码 100000011 +3的补码,计算机中数据存储与时钟一样,是个模数系统。超过了它所能表示的最大值后,就又会恢复到初始状态。 当运算结果超出其表示范围时,会产生“溢出”(得出不正确的结果)。,两个8位二进制数相加 1111 1111:255 0000 0001:1 10000 0000:0,数表示的范围受到字长的限制 若表示一个整数: 用8位, 最大值为01111111,即27-1=127 用16位,最大值为0111111111111111,即215-1=32767,3. 无符号数的表示,在无符号数据处理的过程中,如不需要设置符号位时,可用全部字长来表示数值大小。如8位无符号数的取值范围是0255, 255=2 同样位数的数据在机器中,采用无符号表示或有符号表示其取值范围是不同的。,4.定点数与浮点数,定点数分为定点整数和定点小数。,(1)定点数表示,小数点固定在机器数的最低位之后,整数表示数据精确,数的范围有限。如机器字长16位,补码范围-32768-32767,定点数是指规定小数点固定在某一位置上。浮点数是指小数点位置可以任意浮动。,符号位,4.定点数与浮点数,(1)定点数表示,小数点固定在符号位之后,定点数表示方法使数的表示范围受到限制。当超出规定的范围时,就无法表示了。因此,就有另外一种表示数的方法,即浮点数。,(2)浮点数表示,尾数的位数决定数的精度 阶码的位数决定数的范围,科学记数法表示:十进制数 -1234.567 可表示为: -1234.567 = -1.234567 103 采用以2为底的科学记数法存储: N= 数符尾数2阶码 (其中:数符0为正,1为负,尾数和阶码都用二进制数表示),浮点数也称为实数,是指小数点位置不固定的数, 它既有整数部分又有小数部分。,利用浮点数可以扩大实数的表示范围。,IEEE 754标准(美国电气电子工程师协会IEEE,1985),将浮点数分成两类: 单精度数用32位表示:数符1位,阶码8位,尾数23位 双精度数用64位表示:数符1位, 阶码11位,尾数52位 为了处理负指数的情况,实际数据的指数存储时数值加上127(27-1)后进行存储。尾数只存储小数部分。 单精度浮点数机内存储格式(占4个字节,32位),由于不同计算机所选的基值、尾数和阶码的长度不同,因此对浮点数表示有较大差别,这就不利于软件在不同计算机之间的移植。为此,1985年,美国电气电子工程师协会IEEE制定了IEEE 754标准。,2.4 非数值数据的表示与存储,主要内容 1.字符编码 2.汉字编码 3.多媒体信息表示,计算机除了能处理数值数据外,也能识别各种符号、字符,如英文字母、汉字、运算符号等。 这些数据在计算机中有特定的二进制编码,也就是非数值数据的编码。 编码就是按照一定编码要求和规则进行排列,将1和0组成的符号串赋予一定的含义,符号串的位数决定了可以容纳的编码的数目。在现实生活中,有许多编码的例子。例如学校学生学号的编码要根据招生规模来设定,每一位都被赋予一定的含义。编码还必须具有唯一性,在一所学校中,不允许出现重复的学号,每个学号唯一的对应一位学生。 如,电话号码,128个常用字符,用7位二进制编码,最高位为0,从0到127 控制字符34个:032,127; 普通字符:94个。 例如:“a”字符的编码为110 0001,61H,对应的十进制数是97; 空格 20H 32 09 30H39H 4857 AZ 41H5AH 6590 az 61H7AH 97122,1.字符编码(ASCII码),(American Standard Code for Information Interchange),目前在微型计算机中普遍使用的字符编码是ASCII码, 每个字符采用7位二进制数进行编码,27可以表示128种符号,包括了计算机处理信息常用的英文字母、数字符号、算术与逻辑运算符号、标点符号等。 存储字符的编码采用1个字节存储,最高位设置为0.,在ASCII字符编码表中: 每种符号唯一的对应着一个编码。数字09、字母AZ和az在表中都是顺序排列的,小写字母比大写字母的编码值大32。这里需要记住几个常用的编码:例如:字符“0”的编码不是整数,而是二进制的00110000(30H),对应十进制数为48;字母“A”的ASCII编码是1000001(41H),对应的十进制数为65;“a”的ASCII编码是1100001(61H),对应的十进制数为97。掌握了这几个字符的编码,就可以容易写出后续字母数字的ASCII编码。 还有一些扩展编码,采用8位编码,可以有256个编码状态。,在了解了数值和字符在计算机中的表示后,同学们可能会产生一个问题: 数和字符在计算机中都是二进制数,计算机如何区分呢? 一个字节的内容是65 ,它究竟是数值65 ,还是字符A? 面对孤立的字节,是不能区分,但是存放和使用这个数据的软件,会以其他方式进行区分。,2.汉字编码,拼音 五笔等,GB2312-1980标准汉字字符集,规定在不同的汉字系统中进行汉字交换时使用的编码,简称国标码,两个字节。,汉字在机器内部的表示形式,是内部存储,处理,传输汉字的代码,两个字节表示一个汉字。 为了区分西文字符的机内码,每个字节的最高位设为1.,每个汉字字形码在汉字字库中的相对位移地址,汉字在计算机中也是字符,也要表示为二进制,也应有统一的编码。但是汉字字符多,字型复杂,处理起来比西文字符复杂的多,要解决输入、存储、交换和显示的编码问题。,(1) 汉字输入码, 数字编码: 用4位数字代表一个汉字,如国标区位码、电报码等。 GB2312标准将6763个汉字和700多个符号分成94个区,每个区存放94个汉字和符号。无重码,但是记忆困难。 如:大 2083 工 2504 十进制 拼音编码: 以汉语拼音为基础的输入法,常用有智能ABC、微软拼音、紫光、全拼、搜狗等。(简单易学,重码,拼音为基础) 字形编码: 以汉字的形状确定的编码,如五笔字型、表形输入法。(无重码,快,专业人员),汉字国标码(GB231280)也称汉字交换码, 共收录7445个汉字符号。能表示6763个常用汉字和一些符号。 每个汉字用两个字节、以16进制表示。 汉字分成94个区,每个区存放94个汉字或符号。由区号和位号构成区位码。区位码加上32就构成国标码。 计算机是如何区分字符与汉字的编码呢?,(2)汉字国标码,为了在计算机中使用汉字,1981年,国家标准局公布了GB2312-80标准汉字字符集,规定了在不同的汉字系统中进行汉字交换时使用的编码,简称国标码。,汉字机内码是汉字在机器内部的表示形式,是计算机内部存储、处理、传输汉字的代码。 为区别ASCII码,机内码采用将汉字国标码的每个字节的最高位设为1,形成了在计算机内部用来进行汉字存储、运算的编码。 以汉字“大”为例,国标码为34 73H, 二进制: 0011 0100 0111 0011 国标码 二进制: 1011 0100 1111 0011 机内码 B 4 F 3 34 73H80 80HB4 F3H,得到机内码为B4F3H,国标码转换为机内码:国标码+8080H=机内码,(3)汉字机内码,汉字 区位码 国标码 汉字机内码 大 2083 3473(00110100 01110011)B (10110100 11110011)B 工 2504 1904(00011001 00000100)B (10011001 10000100)B,计算机处理字符数据时,当遇到最高位为1的字节,便将该字节连同其后续最高位为1的另一个字节看做一个汉字;当遇到最高位为0时,则可看做一个ASCII码西文字符,这样就实现了汉字、西文字符的共存和区分。,(4)汉字字形码,汉字的字形码通常有两种表示方式,即点阵和矢量表示方式。,为了能在屏幕上和打印机上输出汉字,必须将汉字的字形以点阵的形式事先存入计算机中,字形码也称为汉字的字模。 点阵字形的构成是把每个汉字放在一个矩型区域里,对每一个位置用二进制的0和1来编码,有笔划经过的地方为“1”,即发亮,无笔划经过的地方为“0”,发暗。然后把这样形成的二进制序列存储起来,就得到了汉字的点阵字型。 当需要显示一个汉字时,根据汉字的机内码,在字库中检索到汉字的字形点阵,把对应的二进制编码序列放入显示存储器中适当的地方,就可在在屏幕上显示该汉字。,点阵表示:用点阵表示的码,是汉字的输出形式。它把汉字排成点阵 常用1616、2424、3232、4848或更高二进制位来存储。 一个16*16点阵的汉字字形占用32个字节,24*24要占用72个字节。 编码、存储方式简单、无需转换直接输出,这类点阵字库汉字最大的缺点是不能放大,一旦放大后就会发现文字边缘的锯齿。,ASCII码的字母存储的也是字母的图片,编码与点阵图片一一对应,需要时调用这个图片,就可以显示对应的字符。,矢量表示:该方式存储的是描述汉字字形的轮廓特征。 矢量方式与点阵相反,矢量字库保存的是对每一个汉字的描述信息,比如一个笔划的起始、终止坐标,半径、弧度等等。需要时,通过计算机的计算,由汉字字形描述程序生成所需大小和形状的汉字点阵。 矢量表示方式可以得到高质量的汉字输出,与最终文字显示的大小和分辨率无关。放大后,不会变形。,Unicode 国际标准编码标准:为了规范编码,采用双字节编码统一表示世界上的主要文字。,键盘输入与屏幕显示,一个汉字从输入到输出,需要经过在键盘上根据输入码输入、计算机将其自动翻译成机内码进行存储和传输,最后根据字形码显示或打印出来这样几个过程。,3.多媒体信息表示,(1)音频信息 为了要使计算机能够处理音频信息,便于存储和操作,必须首先要将声音的模拟信号转换为数字信号。按照固定的时间间隔对声波的振幅进行采样,记录所得到的值序列,并转化为二进制序列,得到声波的数字化表示。,常见的几种声音文件格式,多媒体信息是指以文字、声音、图形、图像为载体的信息。计算机除了能够处理、存储数值和文字,还能处理大量多媒体信息。这些多媒体信息虽然表示形式

温馨提示

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

评论

0/150

提交评论