首页 理论教育 信息编码:字符编码与国标码

信息编码:字符编码与国标码

时间:2023-11-17 理论教育 版权反馈
【摘要】:数据表示,即计算机内最常用的信息编码,包括逻辑型数据表示、中西文字符编码表示、数值型数据的编码表示。附录中列出了全部128个符号的ASCII码,读者可进行参阅。1980年我国颁布了《信息交换用汉字编码字符集·基本集》,代号为GB2312—80,是国家规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。

信息编码:字符编码与国标码

计算机除了用于数值计算之外,还要进行大量的信息处理,也就是要对表达各种信息的符号进行加工。前面,本书已介绍过,计算机中的信息是用二进制表示的,而人们习惯用十进制数,那么输入/输出时,就要进行十进制和二进制之间的转换处理。因此,必须采用一种编码的方法,由计算机自己来承担这种识别和转换工作。数据表示,即计算机内最常用的信息编码,包括逻辑型数据表示、中西文字符编码表示、数值型数据的编码表示。

1.数值编码

一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值。机器数有固定的位数,具体是多少位由所用计算机决定。机器数把其真值的符号数字化,通常是用规定的符号位(一般是最高位)取0或1来分别表示其值的正或负。例如假设机器数为8位,其最高位是符号位,那么在整数的表示情况下,对于00010111和10010111,其真值分别为十进制数“+23”和“-23”。

机器数表示方法有三种:原码、反码和补码。其中,补码运算方便,二进制的减法可用补码的加法实现,因此在计算机中一般使用补码来表示数。

◆原码:整数X的原码,是指其符号位的0或1表示X的正或负,其数值部分就是X的绝对值的二进制表示。通常用[X]表示X的原码。例如:假设机器数的位数是8,则

[+42]=00101010

[-56]=10111000

注意:由于[+0]=00000000,[-0]=10000000,所以数0的原码不唯一,有“正零”和“负零”之分。

◆[反码]:反码表示中,正数的反码与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0)。通常用[X]表示X的反码。例如:

[+42]=[+42]=00101010

[-56]=10111000

[-56]=10111000

注意:由于[+0]=00000000,[-0]=11111111,所以数0的反码也是不唯一的。

◆补码:补码表示中,正数的补码与原码相同;负数的补码在其反码的最低有效位上加1。通常用[X]表示X的补码。例如:

[+42]=[+42]=[+42]=00101010

[-56]=11000001

[-56]=11000111

[-56]=11001000(www.xing528.com)

注意:由于[+0]=[-0]=00000000,所以数0的补码是唯一的。

2.字符的编码

字符编码(Character Code)是用二进制编码来表示字母、数字以及专门符号的。在计算机系统中,有两种重要的字符编码方式:ASCII和EBCDIC。EBCDIC主要用于IBM的大型主机,ASCII用于微型机与小型机。下面简要介绍ASCII码。

目前计算机中普遍采用的是ASCII(American Standard Code for Information Interchange)码,即美国标准信息交换代码,这是目前国际上最为流行的字符信息编码方案。ASCII码有7位版本和8位版本两种,国际上通用的是7位版本,7位版本的ASCII码有128个元素,只需用7个二进制位(2 7=128)表示。ASCII码中的字符包括0~9共10个阿拉伯数字大小写英文字母52个、通用控制字符34个,各种标点符号和运算符号32个。在计算机中实际用8位表示一个字符,最高位为“0”。附录中列出了全部128个符号的ASCII码,读者可进行参阅。

3.汉字的编码

汉字也是字符,与西文字符比较,汉字数量大,字形复杂,同音字多,这就给汉字在计算机内部的存储、传输、交换、输入/输出等带来了一系列的问题。为了能直接使用西文标准键盘输入汉字,必须为汉字设计相应的编码,以适应计算机处理汉字的需要。汉字的编码包括:交换码、输入码、机内码、输出码。

(1)交换码

汉字编码信息必须完全一致,才不会造成混乱。1980年我国颁布了《信息交换用汉字编码字符集·基本集》,代号为GB2312—80,是国家规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。在国标码的字符集中共收录了6 763个常用汉字,其中一级汉字3 755个,以汉语拼音为序排列;二级汉字3 008个,以偏旁部首进行排列。此外,还收录了各种图形符号(英文、日文、俄文、希腊文字母、序号、汉字制表符等)共计682个。在GB2312—80国标码中,这些字符被分成94个区,每个区又分成94位,每个位置可存放一个字符,这样每个字符都有一个唯一对应的区码和位码,区码和位码组成区位码,如汉字“中”位于第54区第48位,其区位码就是5 448。区位码也是一种常用的汉字输入码(外码),大部分汉字系统中都配有区位码输入法

(2)输入码

输入码也称为外码,是按照某种输入法输入汉字时所采用的编码。每个汉字对应一个编码,但一个编码可能对应若干个汉字。汉字的输入码有很多种类型,而且各有特点,用户可以根据自己的需要选择不同的输入法(外码)。目前使用较普遍的汉字输入法有拼音码、自然码、五笔字型、智能ABC等。

(3)机内码

机内码是供计算机系统内部处理、存储和传输时使用的代码,简称为内码。汉字机内码采用双字节编码方案,即用两个字节(16位二进制数)表示一个汉字的内码。汉字的输入码可多种多样,但对同一个汉字,其内码只有一个,内码实际上是指汉字在字库中的物理位置。

(4)输出码

输出码又称为字型码或汉字发生器编码。其作用是在输出设备上输出汉字的形状,将汉字作为二维图形处理,就是把汉字置于网状方格内用黑白点表示,凡有笔画通过的网点为黑点,否则为白点。每个黑白点为字符图形的最小元素,称为位点。由于每个位点都有黑白两种状态,正好对应于二进制的0和1。所以对于每个汉字字型,经过点阵数字化后的一串二进制数称为汉字的输出码。每一个汉字的字型都必须预先存放在计算机内,例如GB2312国标汉字字符集的所有字符的形状描述信息集合在一起,称为字形信息库,简称为字库。通常分为点阵字库和矢量字库。目前,汉字字形的产生方式大多是用点阵方式形成汉字,即是用点阵表示的汉字字形代码。根据汉字输出精度的要求,有不同密度点阵。汉字字形点阵有16×16点阵、24×24点阵、32×32点阵等。如图1-6所示,显示了“次”字的16×16字形点阵和代码。

图1-6 汉字字形点阵机器编码

在图1-6中,整个网格分为16行16列,每个小格用1位二进制编码表示,有点的用“1”表示,没有点的用“0”表示。一个16×16点阵有256个点,需要16×16/8=32个字节来表示。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈