1、大学计算机基础大学计算机基础第第3 3章章计算机中信息表示与存储学习目标学习目标 本章介绍了二进制、不同进制间的转换方法、数值在计算机中的表示以及信息编码等知识。通过本章的学习需要同学们掌握二进制运算及数制间的转换,原码反码补码的表示与应用,理解计算机编码的方法与应用。本章学习内容3.1 信息信息表示的表示的形式形式3.2 信息信息存储形式存储形式3.3 信息编码信息编码3.1.1 二进制数二进制数随着计算机技术的快速发展,二进制是用0和1两个数码来表示的数,是计算机技术采用的一种数制。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。计算机系统使用二进制的主要原因是在设计电路、进
2、行运算的时候更加简便、可靠、逻辑性强。因为计算机是由电来驱动的,电路实现“开/关”的状态可以用数字”0/1”来表示,这样计算机中所有信息的转换电路都可以用这种方式表示,也就是说计算机系统中数据的加工、存储与传输都可以用电信号的“高/低”电平来表示。3.1.2 数制数制数制,又进位计数制,是指用少量的数字符号,按照先后次序把它们排成数位,由低到高进行计数,计满进位。1.1.基数和位权基数和位权数制的类型不同,但具有共同的计算和运算的规律。数制中有基数和位权两个概念。基数是进位制的基本特征数,即所用到的数码的个数。例如十进制:用09 十个数码表示,基数为10。而权则是处在不同位置上的数字代表的值不
3、同,各进位制中位权的值是基数的若干次幂。如十进制数每个数位上的权则是10的某次幂。位权的表示法是指,数字的总个数为基数,每个数字都要乘以基数的幂次,而该幂次由每个数所在的位置决定。排列方式是以小数点为界,整数部分自右向左分别为0次幂、1次幂、2次幂、,小数部分自左向右分别为负1次幂、负2次幂、负3次幂、。2.2.常用的进位记数制常用的进位记数制 (1)十进制所使用的数码有10个,即0、1、2、9,基数为10,各位的位权是10i,进位规则是“逢十进一”。例如,十进制数(124.56)10可以表示为:(124.56)10=1102+2101+4100+510-1+610-2(2)二进制所使用的数码
4、有2个,即0、1,基数为2,各位的位权为2i,进位规则是“逢二进一”。例如,二进制数(1101.01)2可以表示为:(1101.01)2=123+122+021+120+02-1+12-2 (3)八进制所使用的数码有8个,即0、1、2、7,基数为8,各位的位权是8i,进位规则是“逢八进一”。例如,八进制数(35.21)8可以表示为:(35.21)8=381+580+28-1+18-2 (4)十六进制所使用的数码有15个,即0、1、2、9、A、B、C、D、E和F(其中A、B、C、D、E、F分别表示10、11、12、13、14、15),基数为16,各位的位权是16i,进位规则是“逢十六进一”。例如
5、,十六进制数(2C7.1F)16可以表示为:(2C7.1F)16=2 162+12 161+7 160+116-1+1516-2数制数制基数基数数码数码进位规则进位规则十进制十进制100、1、2、3、4、5、6、7、8、9逢十进一二进制二进制20、1逢二进一八进制八进制80、1、2、3、4、5、6、7、8、9逢八进一十六进制十六进制160、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F逢十六进一常用数制的特点如表3-1所示。1.1.3 1.1.3 不同数制间转换不同数制间转换1.1.十进制数转换为非十进制数十进制数转换为非十进制数十进制转换成二进制,需要将整数部分与小数部分分别进行
6、转换。整数部分采用“除基取余法”,小数部分采用“乘基取整法”。(1)十进制整数转换为非十进制整数例如:用“除基取余法”将十进制整数327转换为二进制整数。“除基取余法”转换过程如下:(2)十进制小数转换为非十进制小数十进制小数转换为非十进制小数采用“乘基取整法”。即把给定的十进制小数乘以基数,取其整数作为二进制小数的第一位,然后取小数部分继续乘以基数,将所的整数部分作为第二位小数,重复操作直至得到所需要的二进制小数。2.2.非十进制数转换为十进制数非十进制数转换为十进制数非十进制数转换为十进制数采用“按权展开法”,即先把各位非十进制数按权展开,写成多项式,然后计算十进制结果。例如:写出(110
7、1.01)2,(237)8,(10D)16的十进制数。3.3.二进制与八、十六进制数的转换二进制与八、十六进制数的转换二进制数与八进制数,以及十六进制数存在着倍数的关系,例如23=8,24=16所以它们之间的转换非常方便。在二进制数与八进制数进行转换的时候,可以用“三位并一位”的方式,以小数点为界,将整数部分从右侧向左侧,每三位一组,当最后一组不足三位时,在该组的最左方添“0”补足三位;小数部分从左侧至右侧,每三位一组,当最后一组不足三位时,在该组的最右方添“0”补足三位。然后各组的三位二进制数,按照各自的位权22、21、20展开后相加,就得到了一位八进制数。例如,将二进制小数10110111
8、.01101转换为八进制小数,转换过程如下:八进制数转换为二进制数,用“一位拆三位”的方法,即将每位八进制数用对应的三位二进制数展开表示。例如,将八进制数 123.46转化为二进制数表示。同理,二进制数转为十六进制数时,采用“四位并一位”的方法,十六进制数转为二进制数时,采用“一位拆四位”的表示方法。例如,用“四位并一位”的方法将二进制数110110111.01101转换为十六进制数。4.4.八、十、十六进制之间的八、十、十六进制之间的转换转换八、十、十六进制之间的转换可以借助二进制来实现。如:八进制转换成十六进制,先将八进制转换成二进制,然后再将二进制转换成十六进制。同理,十六进制转换成八进
9、制,先将十六进制转换成二进制,再将二进制转换成八进制。常用的数制对应关系如表3-2所示。十进制十进制二进制二进制八进制八进制十六进制十六进制000000100111201022301133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F16100002010表3-2 常用的数制对照表3.2.1 3.2.1 信息的存储单位信息的存储单位1.1.位位(bit)(bit)读作“比特”,简写为“b”,表示二进制中的1位。计算机中的数据都是以0和1来表示的。一个二进
10、制位只有能有一种状态,即只能存放二进制数“0”或者“1”。2.2.字节字节(Byte)(Byte):字节,简写为“B”,读作“拜特”,是计算机信息中用于描述存储容量和传输容量的一种计量单位,在一些计算机编程语言中也表示数据类型和语言字符。计算机中是以字节为单位解释信息的。一个字节由8个二进制位组成,即“1B=8 b”。3.3.字长字长前面介绍计算机技术指标的时候介绍过“字”和“字长”的概念,字是指计算机的CPU在同一时间内处理的一组二进制数,而这组二进制数的位数就是“字长”。字长与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。字长直接反映了计算机的计算精度,字长越大,计算机一次性
11、处理的数字位数越多,处理数据的速度就越快。4.4.扩展存储单位扩展存储单位计算机的基本存储单位是字节,用B表示,常用的存储单位还有KB、MB、GB、TB,它们之间换算关系为:KB:千字节 KB=1024B=210BMB:兆字节 MB=1024KB=220BGB:吉字节 GB=1024MB=230BTB:太字节 TB=1024GB=240B3.2.2 3.2.2 原码、反码和补码原码、反码和补码1.1.原码原码正数的符号位用0表示,负数的符号位用1表示,数值部分用二进制数的绝对值表示,这种表示称为原码表示。例如,求“+69”和“-69”的原码数0也有“正零”和“负零”之分,“+0”的原码=000
12、0,“-0”的原码=1000。2.2.反码反码计算机中规定,反码的最高位为符号位。正数的反码与原码相同,负数的反码是对原码除符号位外各位按位取反,即“1”取反变为“0”,“0”取反变为“1”。例如,求十进制数“+5”与“-5”的反码。若用一个字节表示,将十进制数5转化为二进制数为00000101。因为“+5”是正数,转化为二进制数的原码为00000101,所以反码与原码相同,(+5)反00000101;正数正数反码反码负数负数反码反码+00000-01111+10001-11110+20010-21101+30011-31100+40100-41011+50101-51010+60110-61
13、001+70111-71000用4位二进制表示的反码正/负数如下:3.3.补码补码正数的补码就是其原码,负数的补码是先求其反码,然后在最低位正数的补码就是其原码,负数的补码是先求其反码,然后在最低位+1+1。例如,十进制数例如,十进制数“+5+5”与与“-5-5”的补码用一个字节表示为:的补码用一个字节表示为:(+5)10=(00000101)原=(00000101)反=(00000101)补(-5)10=(10000101)原=(11111010)反=(11111011)补补码没有补码没有“+0+0”和和“-0-0”的区别,即的区别,即 0 0 补码只有一种形式。补码只有一种形式。正数正数补
14、码补码负数负数补码补码+00000-11111+10001-21110+20010-31101+30011-41100+40100-51011+50101-61010+60110-71001+70111-81000用4位二进制可以表示的补码正/负数如下:3.2.3 3.2.3 定点数与浮点数定点数与浮点数数值除了有正负之分外,还有整数和小数之分。计算机不仅能处理带符号的数值问题,还能解决数值中存在的小数点问题。计算机系统规定,小数点是用隐含规定位置的方式来表示,并不占用二进制位。同时,根据小数点位置是否固定,数的表示方法可分为定点数和浮点数。1.1.定点数:定点数:定点数指小数点在数中的位置是
15、固定不变的,通常有定点整数和定点小数之分。定点整数是将小数点位置固定在数值的最右端,定点小数是将小数点位置固定在有效数值的最左端,符号位之后,在十进制系统中,如果规定小数点左边存放7个数码,右边存放3个数码,当我们存储数字5.623166时,小数后只能保留3位,即5.623,其精度受损;而当存放的数超过8位时,也会导致其数值的不正确。所以,当存放的数字整数部分很大或者小数部分很长时,定点数显然不适合,于是又引入了浮点数,主要用来解决数据溢出、精度受损问题,2.2.浮点数浮点数小数点位置浮动变化的数称为浮点数。对十进制来说,浮点数是以10的n次方表示的数。例如,十进制数245.78,使用浮点表示
16、法为0.24578103。其中0.24578为一个定点数,3表示小数点向右移动3位。当浮点数采用指数形式表示时,指数部分称为“阶码”,小数部分称为“尾数”。尾数和阶码有正负之分,例如,二进制数“-0.00111”,浮点表示为“-0.1112-2”,这里尾数(-0.111)和阶码(-2)都是负数。尾数的符号表示数的正负,阶码的符号则表明小数点的实际位置。3.3.1 3.3.1 二二十进制编码十进制编码计算机输入输出时,通常采用十进制数,而计算机只能识别0和1,所以必须进行二进制编码。二十进制编码方法很多,常用的有BCD码即8421码,是指用4位二进制编码表示1位十进制数。4位二进制数权值分别为2
17、3、22、21、20,即8、4、2、1。BCD码与十进制数的转换直观、简单,对于一个多位十进制数,只需将它的每一位数字按照表3-3中所列的对应关系用BCD直接列出即可。表3-3十进制与BCD转换对照表十进制数十进制数BCDBCD码码十进制数十进制数BCDBCD码码0 00000501011 10001601102 20010701113 30011810004 40100910013.3.2.3.3.2.字符编码字符编码字符编码,即用规定的二进制数表示输入到计算机中文字和符号的方法。字符编码是人与计算机进行通信、交互的重要方式。国际上采用的是美国信息交换标准码(American Standar
18、d Code For Information Interchange),即ASC II码。在计算机内,每个字符的ASCII码用1个字节(8位)来存放,字节的最高位(b7)为校验位,通常用“0”来填充,后7位(b 6 b 5 b 4 b 3 b 2 b 1 b 0)为编码值,7位二进制共有128种状态(27=128),可表示128个字符,即26个小写字母、26个大写字母、10个数字、32个符号、33个控制符号和一个空格。7位编码的ASCII码是目前使用最为广泛的字符编码,称为标准的ASCII码字符集。3.3.3 3.3.3 汉字编码汉字编码计算机只识别由0、1组成的代码,ASCII码是英文信息处
19、理的标准编码,汉字信息处理也必须有一个统一的标准编码。1981年,我国颁布了信息交换用汉字编码字符集基本集(GB 2312-1980),也称为“国标码”,共对6763个汉字和682个图形字符进行了编码。国标码规定:汉字用两个字节表示,每个字节用七位码(高位为0)。国标码将汉字和图形符号排列在一个94行94列的二维代码表中,每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,这样得到GB 231280的区位图,用区位图的位置来表示的汉字编码,称为区位码。如“保”字在二维代码表中处于17区第3位,区位码即为“1703”。1.1.汉字输入码汉字输入码汉字输入码也称外码,是为了
20、将汉字输入计算机而编制的代码。目前,汉字输入码有很多种,最常用的是拼音编码和字形编码。(1)拼音编码拼音编码是按照拼音规则输入汉字,只要会拼音就可以输入汉字。如,搜狗拼音,微软拼音、智能ABC等都属于拼音编码,这种编码简单清晰、容易记忆,操作方便,适合广大用户。缺点:重码率高,生僻字难输入。(2)字形编码字形编码是指按汉字的笔画用字母或数字进行编码。如,五笔字型属于此类编码。字形编码不像拼音编码那么简单,需要熟记上千个字根和上百个笔画,在键盘上打入字根和笔画才能从计算机中选出汉字,所以需要经过专门的训练学习才能掌握。字形编码重码少,输入速度快,效率高,适合打字员或发音不准的用户使用。2.2.汉
21、字内码汉字内码汉字通过键盘或其他设备输入到计算机系统后,计算机内部会根据国标码将汉字转换为计算机内部可以识别和使用的二进制数,也就是机内码,即汉字内码,汉字的内码在计算机中是唯一的。通过汉字内码可以达到通用和高速传输文本信息。3.3.汉字字形编码汉字字形编码ASCII码和GB-2312国标码解决了汉字的输入、传输、存储、计算等问题,但汉字在显示器显示或打印输出时,需要另外对“字形”进行编码。所有字形编码的集合称为字库。字库存放在硬盘中,汉字输出时,先在字库中找到对应的字形编码,再输出到显示器或打印机中。字形编码分为点阵字形编码和矢量字形编码两种。(1)点阵字形编码(2)矢量字形编码3.3.4
22、3.3.4 多媒体信息编码多媒体信息编码1.1.编码过程编码过程日常生活中,我们接触到的声音和图像都是一种随着时间连续变化的物理量,例如声音是一种波,通过空气传播,时大时小、时远时近;图像是因为投射到物体上的光被物体表面反射到人眼中而形成的像,是随着时间、地点变化的光波。这些在时间和幅度上连续变化的物理量称之为模拟信号,如图3.3(a)所示。而计算机处理的是数字信号,数字信号是用一连串脉冲来代表所要传送的信息,不同的脉冲组合代表不同的信息。数字信号在数学上表示为在某区间内离散变化的值。因此,数字信号的波形是离散的、不连续的,因为脉冲只有“有”(0)、“无”(1)两种状态,如图3.3(b)所示。
23、所以在计算机处理声音和图像信息之前,需要将模拟信号转换为数字信号,也就是时间和幅度上连续变化的信号用时间和幅度上离散的数字来表示,这个转变的过程叫做“模/数(A/D)变换”。2.2.音频信息的数字化音频信息的数字化数字声音的质量取决于采样频率和量化分级的细密程度。采样频率越高,量化的分辨率越高,所得数字化声音的保真程度也越好,但是它的数据量也会越大。采样频率越高,模拟信号的波形就划分的越细,经过离散数字化的波形就越接近于原始波形。量化级数是指对满幅度的模拟信号平均分得的份数,表示该级数的二进制数的位数称为量化位数。也就是说,当量化的位数为n时,量化级数为2n。对满幅度信号的量化级数越多,量化后
24、的数值越接近于真实值,但量化位数的增加会导致数据量的增大,对数据的处理、存储和传输都会带来负面的影响。通用的音频采样频率有:44.1kHz、22.05kHz以及11.025kHz。量化位数有8bit、16bit等。对于量化后的波形声音文件数据量(存储空间)的计算公式为:音频文件数据量(字节)=采样频率*时间(秒)*量化位数*声道数/8位3.3.音频数据的压缩音频数据的压缩音频数据的压缩,一般考虑降低采样频率、降低量化位数。根据奈奎斯特采样定理以及音频信号的带宽等因素,一般考虑将音频的采样频率确定为44.1kHz,这个采样频率能够保证声音的高质量还原。在音频采样频率确定的情况下,音频数据的压缩就
25、考虑降低量化位数,当然量化位数的降低也要考虑声音的质量。除此之外,声音数据量的压缩还可以考虑借助两个心理声学的模型:掩蔽效应和绝对听阈。声场中的强音能够掩蔽与之同时发生的附近频率的弱音,这种现象称为掩蔽效应。因为掩蔽效应的存在,又因为绝对听阈的存在,低于人耳听觉频率范围的声音也不必记录和传输。4.4.图像和视频信息的数字化图像和视频信息的数字化图像和视频信息的数字化通常是借助扫描仪、数码相机、摄像头等设备完成的。一幅彩色图像可以表示为一个二维的连续函数f(x,y),其彩色幅度是位置(x,y)的函数。数字化这幅彩色图像实际上就是把连续函数f(x,y)在空间坐标和彩色幅度两个方面进行离散和量化。空
26、间坐标的离散化用分辨率来表示,而彩色幅度的离散化则由像素点的颜色深度来表示。视频文件数据量的计算公式为:视频文件的数据量(字节)=时间(秒)*帧频*水平像素数*垂直像素数*量化位数/8位5 5图像和视频的压缩图像和视频的压缩国际标准化组织和国际电报电话咨询委员会于1991年提出了针对连续色调静止图像的压缩编码标准联合图像专家组JPEG(Joint Photographic Experts Group,)标准。该标准适用于黑白机彩色照片、彩色传真和印刷图片。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。JPEG标准支持很高的图像分辨率和量化精度,提供无损和有损的压缩模式,并且压缩比可调,一般能够将文件压缩到原有的1/401/10大小。JPEG的算法处理的彩色图像是单独的颜色分量图像,它支持多种颜色模型如RGB(red、green、blue)和CMYK(Cyan(青)、Magenta(品红)、Yellow(黄)、black(黑)。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100