《计算机应用基础教程1》课件第2章.ppt

上传人(卖家):momomo 文档编号:8091499 上传时间:2024-11-25 格式:PPT 页数:142 大小:806.50KB
下载 相关 举报
《计算机应用基础教程1》课件第2章.ppt_第1页
第1页 / 共142页
《计算机应用基础教程1》课件第2章.ppt_第2页
第2页 / 共142页
《计算机应用基础教程1》课件第2章.ppt_第3页
第3页 / 共142页
《计算机应用基础教程1》课件第2章.ppt_第4页
第4页 / 共142页
《计算机应用基础教程1》课件第2章.ppt_第5页
第5页 / 共142页
点击查看更多>>
资源描述

1、第2章 计算机内部数据及编码2.1 数制表示数制表示2.2 数值编码及运算数值编码及运算2.3 非数值编码的表示非数值编码的表示2.4 校验码和数据校验方法校验码和数据校验方法计算机最主要的功能是处理信息,如处理数值、文字、声音、图形和图像等。在计算机内部,各种信息都必须经过数字化编码后才能被传送、存储和处理。因此,掌握信息编码的概念与处理技术是至关重要的。本章主要介绍计算机中的代码,各种数制之间的相互转换,数值、字符、汉字、声音、图形和图像等数据在计算机中的编码表示。日常生活中人们常用的是十进制数(09),但是在计算机内部存储和处理的数据采用的是二进制数(0和1)。换句话说,在计算机中不管是

2、文字、图形、声音、动画,还是电影等信息,都必须转换成二进制数的编码形式才能存放在计算机中。正是由于这些信息采用了不同的编码规则,计算机才能加以识别。2.1 数数 制制 表表 示示所谓编码,就是采用少量的基本符号,选用一定的组合原则,来表示大量复杂多样的信息。基本符号的种类和这些符号的组合规则是信息编码的两大要素。例如,用10个阿拉伯数码表示数字,用26个英文字母表示英文词汇等,都是编码的典型例子。2.1.1 计算机中为什么要使用二进制计算机中为什么要使用二进制在计算机中为什么要使用二进制?因为计算机是一种电子设备,组成计算机硬件的基本电子元件大多具有两种状态,正好可以用“0”和“1”来表示,故

3、采用二进制编码。采用二进制编码的主要优点如下:(1)便于物理实现。因为采用十进制要制造10种稳定状态的物理电路难度较大,而具有两种稳定状态的物理器件很多,如开关的“断”与“通”,恰好用“0”和“1”来表示。(2)运算简单。采用二进制,其编码、计数、加减运算规则简单。由数学推导可以证明,对R进制数进行算术求和运算或者求积运算,其运算规则有R(R+1)/2种。若采用十进制有10(10+1)/2种,即55种;若采用二进制则有2(2+1)/2种,即3种。(3)抗干扰能力强。由于门电路的“断”或“通”,电压的“高”与“低”这两种状态比较分明,所以传递时的抗干扰能力强,信息识别的可靠性高。(4)便于逻辑运

4、算。二进制的“0”和“1”正好与逻辑命题的两个值“真”和“假”相对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件。尽管计算机内部采用二进制编码,但用户与计算机的交互仍然采用人们熟悉和便于阅读的形式,如文字、声音和图像等,并未使人感到不方便。2.1.2 数值在计算机内部的表示形式数值在计算机内部的表示形式1数制数制进位计数制简称数制,它是指按照进位方式计数的数制,即将一组固定的数字符号按照一套统一的规则来表示数目的方法。1)基数在采用进位计数的数字系统中,允许使用的基本符号的个数R称为该数制的基数。例如,十进制数的基数R=10,其基本符号为0,1,2,9;二进制数的基数R=2,其基本符

5、号为0和1;八进制数的基数R=8,其基本符号为0,1,2,7。2)权权也称为位值。无论使用的是哪种进制的数,任何一个数都是由一串数字符号表示的,其中各位数字符号所表示的数值都等于该数字符号本身的值乘以一个与它所处的位置有关的常数,该常数就叫做“位值”。位值的大小是以基数为底、数字符号所处的位置的序号为指数的整数次幂。如十进制数的基数为10,每位数字符号代表的“权”的大小是以10为底、数字符号所处位置的序号为指数的整数次幂。例如,十进制数358.34可表示如下:可见358.34从左至右各数字对应的权分别是102、101、100、10-1、10-2(注意:整数部分个位位置的序号为0)。任意进制的数

6、都可以写成该进制数中各位数字符号本身的值与其权乘积的累加和形式,把这种形式称为“数值的按权展开式”。对于一个有n位整数、m位小数的R进制的数,可以用如下公式表示(其中R表示基数,i表示位数(i=-mn-1),Di表示第i位数码):21012104103108105103358.34需要指出的是,任意进制数的按权展开式之和的值,就是该进制数所对应的十进制数值。因此,任意进制数与十进制数的转换,只需求出该进制数的按权展开式之和的值即可。例如,1221100112211210121 .nmiiimmnnnnmnnRDRDRDRDRDRDRDRDDDDDDDD210121010510310810610

7、5)35.568(75.13212121202121)11.1101(210123293858381)135(01284211651610161)5A1(01216568.352常用数制常用数制(1)十进制数。十进制数是人们最熟悉的一种数制。它由10个不同的数字符号(0,1,2,9)组成,基数为10,权为10i。其进位规律是:逢十进一,借一当十。例如,式中的10称为十进制数的基数,、10-1、10-2称为各数位的权。(2)二进制数。计算机内部使用的是二进制数。二进制数中只有两个不同的数字符号:0和1,其基数为2,权为2i。其进位规律是:逢二进一,借一当二。例如,(1110.11)2,式中的2称

8、为二进制数的基数,23、22、21、20、2-1、2-2称为各数位的权。(3)八进制数。八进制数由0,1,2,7八个不同的数字符号组成,其基数为8,权为8i。其进位规律是:逢八进一,借一当八。例如,式中的8称为八进制数的基数,83、82、81、80、8-1、8-2称为各数位的权。(4)十六进制数。十六进制数由16个不同的数字符号0,1,2,9,A,B,C,D,E,F组成,其基数为16,权为16i。其进位规律是:逢十六进一,借一当十六。其中,A,B,C,D,E,F依次与十进制数中的10,11,12,13,14,15相当。例如,式中的16称为十六进制数的基数,163、162、161、160、16-

9、1、16-2称为各数位的权。2.1.3 不同数制间的相互转换不同数制间的相互转换在计算机领域,最常用到的是二进制,但二进制的书写复杂,不便阅读,所以人们常用八进制或十六进制书写和表示。表2-1列出了015这16个十进制数与二、八、十六进制数之间的对应关系。表2-1 四种进制的数之间的对应关系1二、八、十六进制数转换为十进制数二、八、十六进制数转换为十进制数方法:“按权展开求和”,即可将二、八、十六进制数转换为十进制数。【例2-1】将(10101.01)2、(75)8、(10C)16转换为十进制数。2十进制数转换为二、八、十六进制数十进制数转换为二、八、十六进制数一个十进制数有整数和小数两部分,

10、将十进制数转换为二、八或十六进制的数,需要将整数部分和小数部分分开,采用不同方式进行转换,然后再用小数点将这两部分连接起来。十进制数转换为R进制数的方法:(1)整数部分:除以R取余法,即将整数部分不断除以R取余数,直到商为0为止,最先得到的余数为最低位,最后得到的余数为最高位。(2)小数部分:乘R取整法,即将小数部分不断乘以R取整数,直到积为0或达到一定精度为止,最先得到的整数为最高位(最靠近小数点),最后得到的整数为最低位。【例2-2】将十进制数89.8125转换成二进制数。从上可见,二进制整数部分为(1011001)2,二进制小数部分为(0.1101)2,将整数部分和小数部分合并得到十进制

11、数89.8125转换为二进制数:(89.8125)10=(1011001.1101)2。【例2-3】将十进制数165.24转换成八进制数(保留4位小数)。所以(165.24)10=(245.1727)8。【例2-4】将十进制数258.12转换成十六进制数(保留4位小数)。所以。所以3二进制数与八进制数之间的相互转换二进制数与八进制数之间的相互转换由于二进制数和八进制数之间存在特殊关系,3位二进制数刚好可以将八进制数的8个数字符号全部表示,即,因此转换方法比较容易,可采用“合三为一”的原则,将二进制数从小数点开始向左、右两边各以3位为一组进行划分,若不足3位的以0补足(注意:在两边补0),然后将

12、每组3位二进制数对应写成1位八进制数即可。相反,将八进制数转换为二进制数,只需将每位八进制数用3位二进制数表示。【例2-5】将转换为八进制数。001 101 101 011.110 111 011 1 5 5 3.6 7 3 转换结果:(1101101011.110111011)2=(1553.673)8。【例2-6】将转换为二进制数。6 5 4 .1 7 2110 101 100.001 111 010转换结果:(654.172)8=(110101100.001111010)24二进制数与十六进制数之间的相互转换二进制数与十六进制数之间的相互转换二进制数每4位刚好对应于十六进制数的1位,即1

13、6=24位,故二进制数与十六进制数之间的转换可采用“合四为一”的原则,将二进制数从小数点开始向左、右两边各以4位为一组进行划分,若不足4位的以0补足(注意:在两边补0),然后将每组4位二进制数对应写成1位十六进制数即可。相反,将十六进制数转换为二进制数,只需将每位十六进制数用4位二进制数表示。【例2-7】将(101110110010111.111000111010)2转换为十六进制数。0101 1101 1001 0111.1110 0011 1010 5 D 9 7 .E 3 A转换结果:(1011101100 10111.1110001110 10)2=(5D97.E3A)16。【例2-8

14、】将(6A8D.5E)16转换为二进制数。6 A 8 D .5 E0110 1010 1000 1101.0101 1110转换结果:(6A8D.5E)16=(110101010001101.01011110)2。5八进制数与十六进制数之间的相互转换八进制数与十六进制数之间的相互转换八进制数与十六进制数相互转换时,常用方法是先将八进制数转换为二进制数,再将二进制数转换为十六进制数;也可先将八进制数转换为十进制数,再将十进制数转换为十六进制数。数值型数据是指能进行算术运算(加、减、乘、除四则运算)的数据,即我们通常所说的“数”。计算机内表示的数,分为整数和实数两大类。数值型数据有大小和正负之分,

15、无论多大的数,无论正数还是负数,在计算机内的表示,都涉及数的长度和符号如何确定、小数点如何表示等问题。2.2 数值编码及运算数值编码及运算2.2.1 机器数和真值机器数和真值在日常生活中,人们用“+”、“-”号加绝对值来表示数值的大小。但是,在计算机中,对于数的符号“+”或“-”,计算机是无法识别的,因此需要把数的符号数码化。通常,约定二进制数的最高位为符号位,用“0”表示正,用“1”表示负。例如,假设用8位二进制数来表示十进制数+10和-9,则+10的表示形式如下:-9的表示形式如下:将数及它的符号在计算机内部的二进制编码表示称为机器数或机器码,而将其用正、负符号加绝对值(+10和-9)来表

16、示的实际数值称为真值。机器数的表示形式实际上就是把数的符号数码化了,所以它既能表示数的绝对值又能表示数的符号,这种表示方法所表示的数叫做带符号数。有时候需要将计算机字长的所有二进制有效位全部用来表示数的绝对值,而不表示符号,用这种方法表示的数叫做无符号数。如上例的+10和-9若视为带符号数,则分别对应表示的值为10和-9;若视为无符号数,则对应表示的值为10和137。【例2-9】设某机器的字长为 8位,分别写出二进制数 10111010 作为无符号整数和带符号整数对应的真值。解:10111010作为无符号整数时,对应的真值是10011001(二进制)=186(十进制)。10111010作为带符

17、号整数时,其最高位的数码1代表符号“-”,所以与机器数10111010对应的真值是-0111010(二进制)=-58(十进制)。可以看出,计算机中表示的数是有范围的。无符号整数中,所有二进制位全部用来表示数的大小;有符号整数用最高位表示数的正负号,其他位表示数的大小。如果用一个字节表示一个无符号整数,其取值范围是0255(28-1);若表示一个有符号整数,则能表示的最大正整数为01111111(最高位为符号位),即最大值为127,其取值范围是-128+127(-27+27-1)。运算时,若数值超出机器数所能表示的范围,就会产生异常而停止运算和处理,这种现象称为溢出。表2-2列出了8位、16位、

18、32位的无符号正整数和带符号整数的范围。表2-2 数的表示范围在计算机中,为了便于带符号数的运算和处理,常用原码、反码和补码来表示数值数据,下面将分别予以介绍。2.2.2 原码表示原码表示原码表示法是一种最简单的机器数表示法。数值X的原码记为X原,如果机器字长为n(即采用n个二进制位表示数据),则最高位是符号位,0表示正号,1表示负号,其余的n1位表示数值的绝对值。下面举例说明数的原码表示。【例2-10】假设机器的字长为8位,求数12和-10的原码。解:先写出数12和-10的二进制表示:+1100、-1010,然后用“0”表示正,用“1”表示负,并置于左端最高有效位上,绝对值部分置于右端,中间

19、若有空位则填上0。即12原=00001100-10原=10001010对于8位二进制原码,其表示的数值范围为+127-127,即127原=01111111,-127原=11111111数值0的原码表示有两种形式:+0原=00000000,-0原=10000000规律:正数的原码是它本身,负数的原码是真值取绝对值后,在最高位(左端)补“1”。原码表示简单、直观,其表示形式与真值的形式最为接近,但不便于作减法运算,因此在计算机中引入了反码和补码。2.2.3 反码表示反码表示数值X的反码记作X反。反码表示法规定:如果机器字长为n,则最高位是符号位,0表示正号,1表示负号,正数的反码与原码相同,负数的

20、反码则是其绝对值按位求反,即0变1,1变0,但符号位不变。【例2-11】假设机器的字长为8位,求数12和-10的反码。解:先求出数12和-10的原码:12原=00001100,-10原=10001010其反码为12反=00001100,-10反=11110101对于8位二进制反码,其表示的数值范围为-127+127,即+127反=01111111,-127反=10000000与原码一样,数值0的反码表示也有两种形式:+0反=00000000,-0反=11111111反码表示法的优点是统一了加减法运算,只需要计算加法;缺点是运算时会引起循环进位,这既占用机器的计算时间,又给机器设计带来麻烦。因此

21、,人们又寻求到另一种表示方法,即补码。2.2.4 补码表示补码表示在介绍补码前需要先介绍一个很重要的概念“模”,模是指一个计量器的计量范围。如12小时的钟表的计量范围是011,其模为12。模实质上是计量器溢出的量,其值在计量器中表示不出来,计量器只能表示模的余数。例如,当前时间为14点钟,但12小时的钟表是在舍去模12后,显示为(下午)2点钟。从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12)mod 12=2。因此,在模12的前提下,-10可映射为+2。由此可见,对于一个模为12的计量系统来说,加2和减10的效果是一样

22、的。实际上,在以12为模的系统中,11和1,10和2,9和3,8和4,7和5,6和6都有这个性质。对模而言,它们互为补数,因此,减11的运算可以用加1来代替,减10的运算可以用加2来代替,等等。这就把减法问题转化成加法问题了。对于计算机,其概念和方法与时钟完全一样。假设计算机字长为8,所能表示的最大数为11111111。若再加1,则等于100000000(9位),由于计算机字长为8,最高位“1”自然舍弃,结果为00000000。由于产生溢出的量就是计数器的模,故对于8位二进制数,模数为28=256。如同时钟一样,Y与X的减法问题可以转换成Y加上X的补数问题。在计算机中把补数称为补码。数值X的补

23、码记作X补,如果机器字长为n,则最高位为符号位,0表示正号,1表示负号,正数的补码与其原码相同,负数的补码则等于其反码的末尾加1。【例2-12】假设机器的字长为8位,求数25和-18的补码。解:由于25是正数,所以25补=25原=00011001。求负数-18的补码过程:(1)求出该数的原码:-18原=10010010;(2)求出该数的反码:-18反=11101101;(3)在反码的末位加1:-18补=11101110。对于8位二进制补码,其表示的数值范围为-128+127,即+127补=01111111,-128补=10000000注意:与原码、反码不同,数值0的补码只有一种表示形式:+0补

24、=-0补=00000000。由于原码、反码中数值0有两种表示形式,而补码数值0只有一种表示形式,因此,8位二进制补码可以比原码、反码多表示一个负数,即-128。用补码表示数据不像原码直接明了,很难看出它的真值。通常,我们可以对某数的补码求补码,便可以得到该数的原码。例如,已知一个补码为11111001,则原码是10000111(真值是-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”,其余7位1111001取反后为0000110,再在末位加1,所以是10000111。引入补码概念后,加法、减法都可用加法实现。因此,现代计算机多采用补码进行运算。2.2.5 数的定点和浮点表示数

25、的定点和浮点表示在一般书写中,小数点是用“.”来表示的。但在计算机中,难以表示小数点,故在机器中对小数点的位置加以规定。通常有两种表示形式:定点表示和浮点表示。1定点表示定点表示定点表示时小数点的位置是固定的,不需要使用符号表示出来。目前,常用的定点数的表示一般有以下两种。(1)定点整数。小数点的位置固定在最低位的后面,用于表示整数。例如:假定一个整数占8位,则十进制数91D=01011011B在机内的存放形式为(2)定点小数。小数点的位置固定在最高数值位的前面,用于表示纯小数。例如:最高位是符号位,小数点在符号位之后,所以上数表示-0.0011001B。2浮点表示浮点表示在科学计算中,经常会

26、遇到特大或特小的数,如太阳的质量(21033g)和电子的质量(910-28g),对这样的数用整数将无法表示出数值的范围。这时通常采用“浮点数”来表示。在浮点表示法中,小数点的位置是可以移动的。例如十进制数185.6327可表示为:1.856327102、18563.2710-2、0.1856327103等多种形式。同样,一个二进制数110.011可表示为:1.1001122、0.11001123、11001.12-2等。浮点数的表示源于数学中的指数表示形式:N=MRE。一般由两部分组成:尾数M和阶数E。R是对应进制数的基数,在计算机中通常R=2,故不需要表示出来。此处M、E都是用二进制表示的数

27、,尾数M的表示方法与定点小数相似,通常为小于1的小数。尾数的长度影响数的精度。阶数E的表示方法与定点整数相似,相当于数学中的指数。阶数E指明了数N的小数点的位置。显然E采用的数位越多,则数N所表示的数值范围就越大。浮点数的一般格式为:假设某计算机的浮点数用32位表示,其中尾数为24位(含1位数符),阶数为8位(含1位阶符),其能表示的最大数和最小数为多少?最大数为2(128-1)(1-2-23)21271038最小数为-2(128-1)(1-2-23)-2127-1038从以上分析可见,该计算机能表示的数远远大于用32位整数可以表示的数。可见,在数据长度相同的情况下,用浮点数表示的数值范围和精

28、度均比定点数要大很多,所以浮点数在计算机中得到广泛的应用,可以满足一般的科学计算。但是,浮点数的运算规则较为复杂,需要将尾数部分和阶数部分分开做运算。3浮点数的规格化浮点数的规格化在浮点数的表示中,一个数可以有多种表示形式。为了提高表示数的精度,就必须使数的有效数字尽可能多地占据尾数部分,因此规定非零浮点数的尾数最高位必须为1,这种表示形式称为浮点数的规格化。如上例110.011的规格化形式为。计算机中采用浮点数表示时,通常以规格化形式存储,并对规格化浮点数进行各种运算,如运算结果出现了非格式化浮点数,则也要进行“规格化”操作。2.2.6 逻辑数据的运算逻辑数据的运算逻辑代数是讨论逻辑关系的一

29、门学科,它是由英国科学家乔治布尔(George Boole)创立的,故又称布尔代数。逻辑代数和普通代数的相同点是它们都可以用字母表示变量,但是逻辑代数和普通代数有着根本的区别。在普通代数中,变量的取值可以是任意实数,而逻辑代数中的逻辑变量只有两种可能取值:真和假,通常用0表示假,用1表示真。而且这里的0和1不同于普通代数中的0和1,它只表示两种对立的逻辑状态,并不表示数量的大小。在逻辑代数中,基本的逻辑运算有与、或、非3种。其他逻辑运算都可以由这3种基本的逻辑运算组合而成。1“与与”运算运算如果决定某一事件发生的多个条件必须同时具备,事件才能发生,则这种因果关系称之为“与”逻辑。在逻辑代数中,

30、“与”逻辑关系用“与”运算描述。“与”运算又称逻辑乘,可用符号“.”、“”、“AND”、“”、“”来表示。运算规则如下:00=0,01=0,10=0,11=1即若两个参与运算的数中有一个数为0,则运算结果为0;参与运算的数都为1,则结果为1。【例2-13】如果A=1001111,B=(1011101),求AB。解:结果:AB=10011111011101=1001101。2“或或”运算运算 如果决定某一事件是否发生的多个条件中,只要有一个或一个以上条件成立,事件便可发生,则这种因果关系称为“或”逻辑。在逻辑代数中,“或”逻辑用“或”运算描述。“或”运算又称逻辑加,可用符号“+”、“”、“OR”

31、、“”来表示。运算规则如下:00=0,01=1,10=1,11=1即若两个参与运算的数中有一个数为1,则运算结果为1;参与运算的数都为0,则运算结果为0。【例2-14】如果A=1001111,B=(1011101),求 A+B。解:结果:A+B=1001111+1011101=1011111。3“非非”运算运算 如果某一事件的发生取决于条件的否定,即事件与事件发生的条件之间构成矛盾,则这种因果关系称为“非”逻辑。在逻辑代数中,“非”逻辑用“非”运算描述。“非”运算也叫求反运算或者逻辑否定(Logic Negation)。其运算符号常以逻辑变量上加一横线表示。例如,如果变量为A,则它的非运算结果

32、用表示。运算规则如下:即0变1,1变0。【例2-15】假设X=01001011,求。解:=10110100表2-3列出了上述三种基本逻辑关系与、或、非的真值表。表2-3 三种基本逻辑关系真值表4“异或”运算 “异或”运算通常用符号“”来表示。其运算规则如下:即当两个参与运算的数取值相异时,运算结果为1,否则为0。5逻辑表达式逻辑表达式由逻辑运算符将相关的逻辑常量、变量等连接起来的式子称为逻辑表达式,其结果为逻辑值。逻辑表达式的运算规则如下:如有括号,先括号内后括号外;逻辑运算符的优先顺序为先“非”,后“与”,再“或”。【例2-16】已知A=0,B=1,C=1,求下面表达式的值。解:()()()

33、(00)(1 1)(11)01 1011FABB CAC计算机除了能对数值信息进行处理(主要是各种数学运算)之外,对于诸如字符、汉字、图形和图像、声音等信息也能进行各种处理。当然它们在计算机内部也必须表示成二进制形式,这就是非数值型数据的编码表示。2.3 非数值编码的表示非数值编码的表示2.3.1 字符编码字符编码西文是由拉丁字母、数字、标点符号及一些特殊符号组成的,它们通称为字符(Character)。在计算机中常使用的字符编码有ASCII码、BCD码和Unicode等。1ASCII码码目前计算机中使用得最普遍的西文字符编码是ASCII(American Standard Code For

34、Information Interchange)码,即美国标准信息交换代码。它是由美国国家标准委员会制定的一种包括数字、字母、通用符号、控制符号在内的字符编码集,被国际化组织(ISO)指定为国际标准,称为ISO 646标准。它适用于所有的拉丁文字字母,已在全世界通用。ASCII码有7位和8位两种版本。标准的ASCII码是7位码,其编码如表2-4所示。每个字符用7位二进制数表示,其排列次序为,为高位,为低位。虽然ASCII码是7位编码,但由于字节是计算机中的基本处理单位,故一般仍以一个字节(8位)来存放一个ASCII码字符。每个字节中多余的一位(最高位),在计算机内部一般恒置为0。7位二进制数共

35、有种编码组合,范围为00000000B01111111B,可表示128个字符,其中数字10个、大小写英文字母52个、通用字符32个和控制字符34个。表2-4 ASCII码字符集 随着计算机应用领域的快速拓展,7位的字符集已经远远不能满足社会需求,为此国际标准化组织又制定了扩充ASCII字符集,即扩充ASCII码。这种编码的每个字符用8位二进制数表示,其最高位为0或1。扩充ASCII码的取值范围为00000000B11111111B,因此可以表示种不同的字符。其中00000000B01111111B为基本ASCII码部分,范围为0127,共128个;10000000B11111111B为扩充的A

36、SCII码部分,范围为128255,共128个。尽管美国国家标准信息协会已给出扩充部分的ASCII码定义,但在实际应用中多数国家都将扩充部分的ASCII码规定为自己国家语言的字符代码。例如,中国把扩充ASCII码作为汉字的机内码。虽然字符本身不具有数值的概念,但是,由于每个字符的ASCII码正好是占用一个字节的二进制代码,而每个代码对应一个数值,所以该数值称为所对应字符的ASCII码值。例如:大写字母A,其ASCII码为1000001,对应的ASCII码值为65(41H);小写字母a,其ASCII码为1100001,对应的ASCII码值为97(61H);数字0,其ASCII码为0110000,

37、对应的ASCII值为48(30H)。字符的ASCII码值大小是有规律的,从表2-4可以看出,常用的数字、小写字母和大写字母三组字符的ASCII码值都是连续递增的,且小写字母大于大写字母、字母大于数字。因此在知道一个字母或数字的编码后,很容易推算出其他字母和数字的编码。ASCII码是存储英文的编码,同时也是输入英文信息的编码,因为在ASCII码可显示的代码中,每个代码都可以在键盘上找到对应的按键,当我们在键盘上输入文字信息时,键盘输送给计算机的就是相应按键的ASCII编码。2BCD码码BCD(Binary Coded Decimal)码是二进制编码的十进制数的简写。常用的有4位BCD码、6位BC

38、D码和扩展的BCD码3种。4位BCD码,即8421BCD码,曾被广泛使用。它用4位二进制数表示1位十进制数,二进制数每位的权从左向右分别为8、4、2、1。显然,8421BCD码只能表示十进制数的09十个字符,如果对一个多位十进制数进行编码,需要有和十进制数的位数一样多的4位组,如表2-5所示。表2-5 十进制数与BCD码的对应关系注意:两位十进制数是用两个4位二进制数并列表示的,它不是一个8位的二进制数。如 25 的BCD码是 00100101,而二进制数 00100101B=25+22+1=37D,即:6位BCD码由6位组成,可表示个字符,其中包括10个十进制数、26个英文字母和28个特殊字

39、符。由于不能区分大小写英文字母,因此提出了扩展BCD码(Extended Binary Coded Decimal Interchange Code,EBCDIC),即扩展的二十进制交换码。它用8位二进制数表示个编码状态,但只使用其中一部分。EBCDIC码是常用的编码之一,主要用在IBM的计算机中。3UnicodeUnicode(统一码、万国码、单一码)也是一种在计算机上使用的字符编码,它是由国际标准化组织设计,可以容纳全世界所有语言文字的编码方案,可以满足跨语言、跨平台进行文本转换、处理的要求。Unicode的学名是“Universal Multiple-Octet Coded Charac

40、ter Set”,简称为UCS。UCS可以看做是“Unicode Character Set”的缩写。Unicode于1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。UCS有两种格式:UCS-4和UCS-2。目前实用的Unicode 版本对应于UCS-2,使用16位的编码空间,也就是每个字符占用2个字节,这样理论上一共最多可以表示65536(2的16次方)个字符,基本满足各种语言的使用。实际上目前版本的 Unicode 尚未填充满这16位编码,保留了大量空间以备特殊使用或将来扩展。上述16位Unicode字符构成基本多文种平面(B

41、asic Multilingual Plane,BMP),最新(但未实际广泛使用)的Unicode版本定义了16个辅助平面,两者合起来至少需要占据21位的编码空间,比3字节略少。但事实上辅助平面字符仍然占用4字节编码空间,与UCS-4保持一致。未来版本会扩充到ISO 10646-1实现级别3,即涵盖UCS-4的所有字符。UCS-4是一个更大的尚未填充完全的31位字符集,加上恒为0的首位,共需占据32位,即4字节,理论上最多能表示2147483648(2的31次方)个字符,完全可以涵盖一切语言所用的符号。Unicode与现在流行的ASCII码完全兼容,因为两者的前256个符号是一样的。目前,Un

42、icode已经在Windows NT、OS/2、Office 2000等软件中使用。2.3.2 汉字编码汉字编码汉字也是一种字符,在计算机中同样也需要对汉字进行编码。由于汉字比较复杂,针对汉字的输入、存储处理和输出环节,需要对汉字进行不同的编码,这些编码主要包括汉字输入码、汉字信息交换码、汉字内码和汉字字形码等。1汉字输入码汉字输入码为了能将汉字输入到计算机中,首先需要对汉字进行编码,即不同的汉字采用不同的编码,这样用户只要键入汉字输入码,就可以将汉字输入到计算机中。汉字输入码是根据汉字的多种属性(如字音、字形、笔画等)和汉语的有关规则编制的。现行的汉字输入码有很多种,根据所采用输入方法的不同

43、,汉字输入编码方法大体可以分成以下4类:(1)数字编码。用数字串代表一个汉字的输入,常用的是国标区位码。国际区位码将国家标准局公布的6763个两级汉字分成94个区,每个区94位,实际上是把汉字表示成二维数组,区位和位码各两位十进制数字,因此,输入一个汉字需要按键4次。例如,用户采用区位码输入“中”,由于“中”字位于第54区48位,所以用户应键入“5448”。(2)字音编码。用汉字的拼音符号作为输入编码,如汉字“国”的拼音是guo,这就是其拼音输入编码。用拼音输入方法输入汉字就是把像guo这样的输入编码变成所表达的汉字的内码。显然,拼音输入方法简单易学,适合于非专业人员,但缺点是同音字引起的重码

44、多,需增加选择操作。(3)字形编码。这是将汉字的字形分解归类而给出的编码方法,重码少,输入速度快,但编码规则不易掌握,五笔字型和表形码就是这类编码。五笔字型是目前用得相当广泛的输入编码。例如在五笔字型输入方案中,“湖”字的三个偏旁部首“氵”、“古”和“月”分别安排在键盘的i、d和e三个键位上,那么ide字串就是“湖”字的五笔字型输入编码。(4)形音编码。它吸取了字音编码和字形编码的优点,使编码规则简化,重码减少,但掌握起来也不容易。此外,还有手写输入和语音输入法,它们使用特殊的技术将手写的笔画或语音转换成对应的编码。2汉字信息交换码汉字信息交换码汉字信息交换码是用于在不同汉字信息系统之间进行汉

45、字交换时所使用的编码,也称汉字交换码,它采用统一的标准。1)GB 23121980GB 23121980是国家信息交换用汉字编码字符集基本集,简称国标码,于1980年发布,是中文信息处理的国家标准。国标码将所收集、定义的基本汉字分为两级,其中使用频率较高的3755个汉字定为一级常用汉字,使用频率稍低的3008个汉字定为二级次常用汉字,总共有6763个汉字,另外还定义了682个非汉字图形符号。一级汉字按拼音字母顺序排序,二级汉字按部首排序。一般情况下,该编码集中的二级汉字及符号已足够使用。国标码规定每个汉字用两个字节来表示,每个字节的最高位恒为0(如表2-6所示),其余7位用于表示汉字信息,可表

46、示128128=16 384个字符。为了方便书写,常常用4位十六进制数来表示一个汉字。例如汉字“中”的国标码为两个字节的二进制编码01010110B、01010000B(56H、50H)。可以看出,这样的编码与国际通用的ASCII码在形式上是一致的,只不过是用两个ASCII码来表示1个汉字国标码而已。表2-6 国标码的格式国标码是一种机器内部编码,其主要作用是:用于统一不同的系统之间所用的不同编码。通过将不同的系统使用的不同编码统一转换成国标码,不同系统之间的汉字信息就可以相互交换。国家标准GB 23121980规定,国标码中所有的汉字和字符都放置在一个94行94列的阵列中,阵列的每一行称为一

47、个汉字的“区”,用区号来表示,每一列称为一个汉字的“位”,用位号来表示。这样每一个汉字就可以用其所对应的区号与位号的组合来表示,这样得到的汉字编码叫做区位码。区位码的形式是:高两位为区号,低两位为位号。如“中”字的区位码是5448,即位于54区48位,如表2-7所示。表2-7 汉字“中”的区位码表示区位码与汉字之间具有一一对应的关系,其中115区分布的是一些非汉字图形符号;1655区为一级字库,共3755个汉字;5687区为二级字库,共3008个汉字;8894区为保留区,可用来存储自造汉字码。需要注意的是,汉字的区位码和国标码在数值上是不同的,它们之间的转换很简单:将一个汉字的区号和位号分别转

48、换成十六进制数,然后再分别加上20H,就成为此汉字的国标码。例如“中”字的输入区位码是5448,分别将其区号54转换为十六进制数36H,位号48转换成十六进制数30H,即3630H。然后,再把区号和位号分别加上20H,就得到“中”字的国标码:3630H+2020H=5650H。2)GBK编码为了既能扩大目前汉字信息处理的应用范围,又能最终向国际统一字符集标准ISO 10646迈进,解决GB 23121980汉字收字不足、简繁同平面共存、简化代码体系间转换等汉字信息交换的瓶颈问题,在保持已有应用软件兼容性的前提下,我国制定了一个汉字扩展规范GBK(Chinese Internal Code Sp

49、ecification),GB即“国标”,K是“扩展”的汉语拼音的第一个字母。该标准也采用双字节编码。GBK编码与GB 23121980兼容,共收录汉字21 003个,符号883个,并提供1894个造字码位,简、繁体字融于一库。Windows 95/98简体中文版就带有GBK.txt文件,宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。3)GB 180302000GB 180302000是取代GBK 1.0的正式国家标准。它采用单字节、双字节、双四字节混合编码,总编码空

50、间超过150万个码位。该标准共收录了27 484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字,为推动少数民族的信息化奠定了坚实的基础。现在的PC平台必须支持GB 18030,对嵌入式产品暂不作要求,所以手机、MP3一般只支持GB 2312。4)BIG5编码BIG5编码是目前普遍使用于台湾、香港等地区的一种繁体字编码方案,俗称“大五码”。它采用双字节编码方案,共收录了13 461个符号和汉字,其中包括408个符号和13 053个汉字,汉字分5401个常用字和7652个次常用字。3汉字机内码汉字机内码汉字机内码又称“汉字ASCII码”、“机内码”,简称“内码”,是供计算机内部存储、

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《计算机应用基础教程1》课件第2章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|