第五章信息编码_第1页
第五章信息编码_第2页
第五章信息编码_第3页
第五章信息编码_第4页
第五章信息编码_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第五章信息编码5.1计算机的编码与数据5.2进制及其转换5.3计算机中信息的表示及存储5.1计算机的编码与数据计算机能够处理数值、文字、声音、图像等各种信息。目前计算机中所有的信息都用“0”和“1”两个数字符号组合的二进制数来表示。数值、图形、文字等各种形式的信息,需要计算机进行加工处理时,首先必须按一定的法则转换成二进制数。5.1.1计算机编码1、ASCII码在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。

ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。下图5-1为部分字符对应的ASCII。2、非ASCII编码英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel(ג),在俄语编码中又会代表另一个符号。但是不管怎样,所有这些编码方式中,0—127表示的符号是一样的,不一样的只是128—255的这一段。至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。一个字节只能表示256种符号,肯定是不够的,就必须使用多个字节表达一个符号。比如,简体中文常见的编码方式是GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示256x256=65536个符号。3.Unicode

正如上一节所说,世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。可以想象,如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是Unicode,就像它的名字都表示的,这是一种所有符号的编码。

Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字“严”。具体的符号对应表,可以查询unicode-org,或者专门的汉字对应表。4.UTF-8

互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32,不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。

UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。UTF-8的编码规则很简单,只有二条:1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。下表总结了编码规则,字母x表示可用编码的位。Unicode符号范围|UTF-8编码方式

(十六进制)|(二进制)--------------------+---------------------------------------------00000000-0000007F|0xxxxxxx

00000080-000007FF|110xxxxx10xxxxxx

00000800-0000FFFF|1110xxxx10xxxxxx10xxxxxx

00010000-0010FFFF|11110xxx10xxxxxx10xxxxxx

10xxxxxx下面,还是以汉字“严”为例,演示如何实现UTF-8编码。已知“严”的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(00000800-0000FFFF),因此“严”的UTF-8编码需要三个字节,即格式是“1110xxxx10xxxxxx10xxxxxx”。然后,从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是“111001001011100010100101”,转换成十六进制就是E4B8A5。5.1.2汉字存放标准GB23125.2进制及其转换5.2.1进制概述十进制:日常生活中使用的数是十进制数,它的特征是:有10个数字:0、1、2、3、4、5、6、7、8、9。运算时逢十进一。每个数字在不同的数位上,其值以10的倍数增。数位:个十百千万……

数值:100101102103104……二进制;计算机使用的是二进制数,它的特征是:有2个数字:0,1。运算时逢二进一。每个数字在不同数位上,其值以2的倍数递增。即20,21,22,23,24,……

用二进制数表示一个数值时,因为其位数比较长,不便书写和记忆;由于又有下面的关系:23=824=16所以人们常用八进制数或十六进制数来表示二进制数。八进制数:有八个数字:0,1,2,3,4,5,6,7。运算时逢八进一。十六进制数:有十六个数字:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。运算时逢十六进一。在十六进制中,分别用A、B、C、D、E和F来表示十进制数的10、11、12、13、14和15。由此可得出:二进制、八进制、十进制与十六进制的特征对照表如表5-1所示。表5-1二进制、八进制、十进制与十六进制的特征对照表进制个位数字运算规则数的表示方法二进制0、1逢二进一(1101)2八进制0、1、2、3、4、5、6、7逢八进一(17)8十进制0、1、2、3、4、5、6、7、8、9逢十进一(23)10十六进制0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F逢十六进一(2F)16表5-2二进制、八进制、十进制与十六进制的特征5.2.2进制间的转换进制间的转换有两种方式可以完成,第一种,通过竖式计算可以进行,这种方式相对比较复杂,理解有一定的难度,相对抽象点;第二种方式可以通过“程序”菜单栏中的“计算器”工具可以直接转换,这种转换比较直观,结果准确度高。下面详细叙述这两种转换方式的转换过程。第一种转换方式、计算的方式完成进制的转换

R(R表示二、八、十六)进制转换成十进制:任何一个数一般由:数值、位权与基数组成。“基数”即为该数字采用何种进制,则对应的基数就是几,如(101101)2表示采用二进制,则基数即为“2”。“位权”是以小数点为基准,向左每一位数字的位权从0开始变化,依次递增1,分别为0、1、2……;向右依次递减,分别为-1、-2……如(82.35)10中“8”的位权为1,“2”的位权为0,“3”的位权为-1,“5”的位权为-2。“数值”是指个、十、百位上的数字。例1:将二进制数(101101)2转换成十进制数。先确定二进制数(101101)2中的位权从左到右依次为5、4、3、2、1、0,由于基数为“2”,所以转换后的十进制数应为:(101101)2=1х25+0х24+1х23+1х22+0х21+1х20=45例2:将十六进制(2AF5)16换算成10进制:第0位:5*160=5第1位:F*161=240第2位:A*162=2560第3位:2*163=8192+————————————-10997十进制数转换成R进制相对比较复杂些,前面将R进制转换成十进制时采用的乘以基数的位权次方求和法,那么将十进制转换成R进制则是一个逆过程,整数部分采用除以基数求余法,余数由低向高;小数部分采用乘R取整法,由高到低。具体步骤如下:步骤(整数部分):(1)将十进制数除r,保存余数。(2)如果商为0,则进行第三步,否则,用商代替原十进制数,重复第1步。(3)将所有的余数找出,最后得到的余数作为最高位,最先得出的余数作为最低位,由各余数依次排列而成的新的数据就是转换成r进制的结果。步骤(小数部分):(1)、将十进制小数部分乘以r,保存此时的整数(包含整数0)(2)、若积为一个整数或者所得的结果达到了题中要求的精度则进入第三步,否则重复第一步(3)、将所有的整数找出,最先得到的整数作为最高位,最后得出的整数作为最低位,由各整数依次排列而成的新的数据就是转换成R进制的结果。例3、将(47.3215)10转换为二进制数。

①整数部分转换将整数49“除二取余”法,由于后得到的“余”的权大于先得到的。因此,取余数的过程与计算过程相反,要从下向上取。如下图5-2所示。

②小数部分转换:

小数部分0.3125用“乘二取整”法,书写顺序:第一次乘以2所得整数是最高位

(即从上往下书写)小数部分的转换结果,如图5-3所示。综合上面两步,最后得到的结果为:(47.3125)10=(101111.0101)2图5-2整数部分转换示意图图5-3小数部分转换示意图第二种转换方式、计算器转换法采用这种转换方式比较直观,通过Windows操作系统内部提供的计算器进行转换。点击开始菜单,“程序→附件→计算器”即可弹出如下图5-4所示的窗口。例4、采用计算器的转换方式将十六进制(2AF5)16换算成10进制:①、打开计算器软件,进入科学型窗口,如图5-4所示;②、点击图中的“十六进制”,从键盘输入“2AF5”,如下图5-6所示。图5-6进制转换前的数据输入③数据输入完毕后,点击“十进制”即可得出答案,如图5-7所示。图5-7转换后的数据结果图5.3计算机中信息的表示及存储计算机内部采用二进制的方式计数,一个二进制位称一个比特(bit)。不论是数值数据还是文字、图形等,在计算机内部都采用了一种编码标准。通过编码标准可以把它转换成二进制数来进行处理,计算机将这些信息处理完毕再转换成可视的信息显示出来。计算机中数据为什么以二进制表示呢?可行性:二进制数只有0,1两个数码,采用电子器件很容易实现。可靠性:二进制的0,1两种状态,在传输和处理时不容易出错。简易性:使计算机的运算器结构大大简化,控制简单。

逻辑性:二进制的0,1两种状态,代表逻辑运算“假”和“真”两种值。5.3.1英文文字符号编码英文中的字母、符号通常采用ASCII(AmericanStandardCodeofInformationInterchange)码,它原来是美国标准信息交换码,1967年被定为国际标准码。ASCII码表见附录。一个ASCII码由8位二进制数组成,占据一个字节空间。其中最高位为奇偶校验位,用于在传输过程检验数据的正确性;其余7位二进制数表示一个字符,共有27=128种组合。例如:回车的ASCII码为0001101(13),空格的ASCII码为0100000(32),“0”的ASCII码为0110000(48),“A”的ASCII码为1000001(65),“a”的ASCII码为1100001(97)等。通常编码打字符号代码分布具有以下特点:1.空格符(SP)的代码最小、删除符(Del)的代码最大。2.数字代码小于字母代码。3.大写字母小于小写字母,26个字母中A最小,Z最大。例:已知英文字母A的ASCII码值为65,那么英文字母I的ASCII码值是多少?分析:ASCII码表中A和I相差8,已知A的ASCII码是65,那么I的ASCII码就是65+8=73;5.3.2中文文字编码为了表示和交换汉字信息,1981年我国国家标准局制定了《信息交换用汉字编码字符集》,代号为GB2312-80,简称国标码。国标码共对7445个汉字和符号进行了编码,并根据使用的频率将6763个汉字分为两个等级:一级汉字包括3755个常用汉字,按汉语拼音顺序排列;二级汉字包括3008个次常用汉字,按偏旁部首及笔画顺序排列。

GB2312-80国标码的编码原则是:一个汉字用两个字节表示,分别称为前字节和后字节,每字节用低7位二进制码,共计14位二进制码,能组成214=16384个不同的代码,并将代码分成94区,每个区94个汉字或符号。对每个汉字符号,前字节编码称为区码,后字节编码称为位码,即区位码。在区位码中01区到15区是非汉字图形符号,16区到55区是一级汉字,56区到87区是二级汉字,87区以后空闲,可以存放标准库中没有的生偏汉字。

汉字的输入区位码和其国标码之间的转换方法为:将一个汉字的十进制区号和十进制位号分别转换成十六进制;然后再分别加上20H,就成为此汉字的国标码。例:已知汉字“家”的区位码是2850,其国标码是:3C52H本题中“家”的区位码:285

温馨提示

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

评论

0/150

提交评论