计算机科学中的信息通常被认为是能够用计算机处理的有意义的内容或消息,如数值、文字、语言、图形、图像等,它们以数据的形式出现。信息不仅维系着人类的生存,而且在不断地推动着经济和社会的发展。
【熟记】数制的基本概念。
人们在生产实践和日常生活中创造了许多表示数的方法,常用的表示方法有十进制、钟表计时中使用的六十进制等。这些数的表示规则称为数制。
使用 R 个基本符号(如0,1,2,3,4,…, R -1)来表示数值,按 R 进位的方法进行计数,称为 R 进位计数制,简称 R 进制。数值中固定的基本符号称为数码。对于任意具有 n 位整数、 m 位小数的 R 进制数,有同样的基数 R 、位权 R i (其中 i =- m~n -1)和按权展开的表示式。
每个数码的实际值=数码的值×位权。而“按权展开”的意义就是求整个数的实际值,即整个数的实际值=每个数码的实际值之和,即每个数码的值×位权,然后相加。
了解了计数制的规律后,下面具体介绍二进制数、八进制数、十进制数和十六进制数的特点,如表1-1所示。
表1-1 二进制数、八进制数、十进制数和十六进制数的特点
注: i =- m~n -1, m 、 n 为自然数, m 和 n 分别代表数的小数部分、整数部分的位数。
二进制、十进制、十六进制是“数制”最基本的内容,要求考生能做到在一定数值范围内直接写出二进制、十进制和十六进制的对应关系。表1-2列出了十进制数0~15对应的二进制数和十六进制数。
表1-2 十进制数0~15对应的二进制数和十六进制数
【掌握】各进制数之间的转换。
非十进制数转换为十进制数的方法是按权展开。
【例1-1】二进制数110.01的基数为2,位权为2 i (其中 i =-2~2),转换为十进制数时,按权展开:
(110.01) 2 =1×2 2 +1×2 1 +0×2 0 +0×2 -1 +1×2 -2 =(6.25) 10
十六进制数B7E的基数为16,位权为16 i (其中 i =0~2),转换为十进制数时,按权展开:
(B7E) 16 =11×16 2 +7×16 1 +14×16 0 =(2942) 10
将十进制数转换为 R 进制数时,可将此数的整数与小数两部分分别进行转换,然后拼接起来。
十进制整数转换为二进制整数的方法是“除二取余法”,按以下操作步骤进行转换。
把十进制数除以2得一个商和余数,商再除以2又得一个商和余数,依次除下去,直到商为0。
以最先除得的余数为最低位,最后除得的余数为最高位,从最高位到最低位依次排列,便可得到这个十进制整数的等值二进制整数。
十进制小数转换为二进制小数采用“乘二取整法”,按以下操作步骤进行转换。
把十进制数乘以2得一个新数:若整数部分为1,则二进制小数相应位为1;若整数部分为0,则相应位为0。
从高位向低位逐个进行转换,直到满足精度要求或乘2后小数部分为0。
【例1-2】将十进制数(125.8125) 10 转换为二进制数。
因此,十进制数(125.8125) 10 转换为二进制数的结果为(1111101.1101) 2 。
同理,十进制数转换为八进制数时,整数部分采用“除八取余法”,小数部分采用“乘八取整法”;十进制数转换为十六进制数时,整数部分采用“除十六取余法”,小数部分采用“乘十六取整法”。
【例1-3】将十进制数(2606) 10 转换为十六进制数。
即(2606) 10 =(A2E) 16 。
由于16是2的4次幂,所以可以用4位二进制数来表示1位十六进制数。常见二进制数对应的十六进制数如表1-2所示。
(1)十六进制数转换为二进制数。
对每1位十六进制数,用与其等值的4位二进制数代替。
【例1-4】将十六进制数(1AC0.6D) 16 转换为二进制数。
即(1AC0.6D) 16 =( 1 1010 1100 0000 . 0110 1101 ) 2 。
在二进制数中,整数部分最左边的零、小数部分最右边的零都是没有实际意义的,书写时可以省略。
(2)二进制数转换为十六进制数。
二进制数转换为十六进制数的方法是从小数点开始,整数部分向左、小数部分向右每4位分成1节,整数部分最高位不足4位或小数部分最低位不足4位时补“0”,然后将每节依次转换为十六进制数,再把这些十六进制数连接起来,得到二进制数的等值十六进制数。
【例1-5】将二进制数(10111100101.00011001101) 2 转换为十六进制数。
即( 101 1110 0101 . 0001 1001 101 ) 2 =(5E5.19A) 16 。
同理,由于8是2的3次幂,所以可以用3位二进制数来表示1位八进制数。
【例1-6】将八进制数(2731.62) 8 转换为二进制数。
即(2731.62) 8 =( 010 111 011 001 . 110 010 ) 2 。
不同进制数转换的技巧:考生可以利用Windows 自带的“计算器”(单击“开始”→“所有程序”→“附件”→“计算器”)进行转换。
【熟记】数据在计算机内的常用单位及它们之间的换算方法。
在计算机内部,指令和数据都是用二进制数0和1表示的,因此计算机系统中的信息存储、处理也都是以二进制数为基础的。下面介绍计算机中二进制数的单位。
现代计算机中存储的数据是以字节为处理单位的,如一个ASCII(西文字符、数字)用一个字节表示,而一个汉字和一个国标图形符号用两个字节表示。在实际使用中,由于字节表示的量太小,所以常用KB、MB、GB和TB作为数据的存储单位。常见的存储单位如表1-3所示。
表1-3 常见的存储单位
计算机使用的数据可分为两类:数值数据和字符数据(非数值数据)。
在计算机中,不仅数值数据是用二进制数来表示的,字符数据(如各种字符和汉字)也都用二进制数进行编码。
【了解】不同字符的ASCII的大小。
【应用】比较常用的ASCII。
字符包括西文字符(字母、数字、各种符号)和中文字符,指所有不可做算术运算的数据。由于计算机是以二进制数的形式存储和处理数据的,因此字符也必须按特定的规则进行编码才能被计算机识别。
所谓“编码”,就是用二进制数来表示数据。
计算机中常用的字符(西文字符)编码标准有两种:EBCDIC和ASCII。IBM系列的大型计算机采用EBCDIC,微型计算机采用ASCII。下面主要介绍ASCII。
ASCII是美国信息交换标准代码(American Standard Code for Information Interchange)的英文缩写。该编码标准被国际标准化组织(International Organization for Standardization,ISO)采纳为国际通用的信息交换标准代码,是目前在微型计算机中普遍使用的字符编码。
ASCII有7位码和8位码两个版本。
大小写英文字母、阿拉伯数字、标点符号、控制符等字符都有对应的编码,表1-4中的每个字符都对应一个数值,这个数值称为该字符的ASCII值,排列次序为 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ,其中 b 6 为最高位, b 0 为最低位。
表1-4 128个字符对应的7位ASCII值
ASCII表中共有34个非图形字符(又称为控制字符)。例如,回车的符号是CR(Carriage Return),编码是 0001101。其余94个可打印字符也称图形字符,将这些字符按ASCII值从小到大排列为0~9、A~Z、 a~z,其中小写字母比大写字母的ASCII值大32,即位 b 5 为0或1,这有利于大、小写字母之间的编码转换。有些特殊的字符编码是容易记忆的,例如,“A”字符的编码为1000001,对应的十进制数是65;“B”字符的编码为1000010,对应的十进制数是66。
计算机内部用一个字节(8位二进制数)存放一个7位ASCII,其最高位为0。
【了解】国标码与汉字内码的转换。
为使计算机可以处理汉字,需要对汉字进行编码。GB/T 2312—1980《信息交换用汉字编码字符集—基本集》(简称GB码或者国标码)是我国于1980年发布的汉字编码标准。国标码中的汉字分为94行、94列,代码表分为94个区(行)和94个位(列)。区位码由其中的区号(行号)和位号(列号)构成。4位十进制数字组成区位码,前面2位是区号,后面2位是位号。计算机进行汉字处理的过程实际上是各种汉字编码之间的转换过程。汉字编码有汉字输入码、汉字内码、汉字字形码、汉字地址码等。下面分别介绍各种汉字编码。
(1)汉字输入码。
汉字输入码是为使用户能够使用西文键盘输入汉字而编制的编码,也叫外码。
汉字输入码有许多不同的编码方案,它们大致分为以下几类。
● 音码:以汉语拼音字母和数字为汉字编码,例如全拼输入法和双拼输入法。
● 形码:根据汉字的字形结构对汉字进行编码,例如五笔字型输入法。
● 音形码:以拼音为主,字形、字义为辅,对汉字进行编码,例如自然码输入法。
● 数字码:直接用固定位数的数字给汉字编码,例如区位输入法。
同一个汉字在不同编码方案中的编码一般也不同,例如输入“嵌”字时,使用全拼输入法要输入编码“qian”(然后选字),而用五笔字型输入法要输入编码“mafw”。
(2)汉字内码。
汉字内码是为在计算机内部对汉字进行处理、存储和传输而编制的编码。不论采用何种输入码,输入的汉字都要先在计算机内部转换为统一的汉字内码,然后才能在计算机内进行传输、处理等。
目前,对应国标码,一个汉字内码也用两个字节存储。因为ASCII是西文的内码,为不使汉字内码与ASCII发生混淆,就把国标码每个字节的最高位1作为汉字内码。
【例1-7】汉字“大”的国标码是(3473) 16 ,将国标码加上(8080) 16 ,即可得到它的内码。
(3)汉字字形码。
汉字字形码是存放汉字字形信息的编码,它与汉字内码一一对应。每个汉字的字形码是预先存放在计算机内的,存放的位置常称为汉字库。计算机根据汉字内码在汉字库中查到其字形码,得知字形信息,然后实现汉字的显示或打印输出。
表示汉字字形的方法主要有点阵字形法和轮廓字形法两种。
下面具体介绍点阵字形法。
图1-1 汉字“工”的16×16点阵字形
由于汉字是由笔画组成的方块字,所以无论多少笔画的汉字都可以写在相同大小的方框里。如果用 m 行 n 列小圆点组成这个方框(称为点阵),那么每一个汉字都可以用点阵中的某些点组成。图1-1所示为汉字“工”的16×16点阵字形。
计算机用一组二进制数表示一个点阵。当某一点的二进制数是1时,该点为黑点,是0时为白点。一个16×16的点阵有256个点,需要16×16÷8=32字节的存储空间。同理,24×24点阵的汉字字形码需要24×24÷8=72字节的存储空间,32×32点阵的汉字字形码需要32×32÷8=128字节的存储空间。
显然,点阵中行、列数越多,锯齿越小,字形的质量越好,但存储汉字字形码需要的存储空间也越大。汉字字形通常分为通用型和精密型两类。
● 通用型汉字字形点阵分为简易型16×16点阵、普通型24×24点阵、提高型32×32点阵3种。
● 精密型汉字字形用于常规的印刷排版,字形点阵一般在96×96点阵以上,占用的字节量较大,因此精密型汉字字形通常采用信息压缩存储技术来存储。
(4)汉字地址码。
汉字地址码是指汉字库(这里主要指汉字字形的点阵式字库)中存储汉字字形信息的逻辑地址码。在汉字库中,字形信息都是按一定顺序(大多数按照标准汉字国标码中汉字的排列顺序)连续存放在存储介质中的,所以汉字地址码通常是连续、有序的,而且与汉字内码有着简单的对应关系,从而简化了汉字内码与汉字地址码的转换。
(5)各种汉字编码之间的关系。
汉字的输入、输出和处理的过程,实际上是汉字的各种编码之间的转换过程。
汉字通过汉字输入码输入计算机,然后通过输入字典转换为内码,以内码的形式进行存储和处理。在汉字通信过程中,处理机将汉字内码转换为适用于通信的交换码(汉字信息交换码,也叫国标码),以实现通信。
在汉字的显示和打印输出过程中,处理机根据汉字内码计算出汉字地址码,按汉字地址码从汉字库中取出汉字字形码,最终实现汉字的显示或打印输出。图1-2所示为这些编码在汉字信息处理系统中的地位及它们之间的关系。
图1-2 各种汉字编码在汉字信息处理系统中的地位及它们之间的关系