首页 | 论坛 | 专题 | 了解华图 | 客服中心
返回中心首页

  第四节  字符编码
  字符编码,全称为字符的2进制编码,它是将各种信息(如文字符号、图形图像、声音等)表示为用0和1组成的二进制代码串的方法和规则。
  一、ASCII码
  ASCII:American Standard Code for Information Interchange,美国标准信息交换码。它是一种将字符(包括英文字母、数字、标点符号、运算符号、通用符号、控制符号等共128个)转为二进制代码的编码标准,用7位二进制代码表示。ASCII码共包含128个字符的二进制编码,编号为0—127,每个字符的ASCII码占1B(即一个字节,8位,且最高位是0),字符的编号就是字符的ASCII码的10进制,其中0—31号字符是控制字符,32—127号字符是可显示字符。
  ASCII码表
  b6b5b4
  b3b2b1b0000001010011100101110111
  0000NULDLESP0@P`p
  0001SOHDC1!1AQaq
  0010STXDC2"2BRbr
  0011ETXDC3#3CScs
  0100EOTDC4$4DTdt
  0101ENQNAK%5EUeu
  0110ACKSYN&6FVfv
  0111BELETB'7GWgw
  1000BSCAN(8HXhx
  1001HTEM)9IYiy
  1010LFSUB*:JZjz
  1011VTESC+;K[k{
  1100FFFS,<L\l|
  1101CRGS-=M]m}
  1110SORS.>N^n~
  1111SIUS/?O_oDEL
  ASCII码表中,数字和英文字母都是按顺序排列的,只要知道其中一个的二进制代码,不要查表就可以推导出其他数字或字母的二进制代码。特别地,英文大写字母和小写字母值相差32,即英文大写字母+32=英文小写字母。例如:8位2进制码01000001存储大写字母A,而01100001存储小写字母a。
  二、汉字的编码
  从汉字编码的角度看,计算机对汉字信息的处理过程实际上是各种汉字编码间的转换过程。
  (一)国标码和区位码
  汉字信息交换码是用于汉字信息处理系统之间或者与通信系统之间进行信息交换的汉字代码,简称交换码,也叫国标码。它是为使系统、设备之间信息交换时采用统一的形式而制定的。1980年,中国标准局颁布了国家标准《信息交换用汉字编码字符集——基本集》,代号“GB2312-80”,即国标码。
  1.常用汉字及其分级。国标码规定了进行一般汉字信息处理时所用的7445个字符编码。其中有682个非汉字图形字符和6763个汉字的代码。汉字代码中又有一级常用字3755个,二级次常用字3008个。一级常用汉字按汉语拼音字母顺序排列,二级次常用字按偏旁部首排列,部首顺序依笔画多少排序。
  2.两个字节存储一个国标码。
  3.国标码的编码范围。为了中英文兼容,国标GB2312-80中规定,国标码中的所有汉字和字符的每个字节的编码范围与ASCII码表中的94个字符编码相一致,所以,其编码范围是:2121H—7E7EH。
  区位码类似于ASCII码表,汉字也有一张国标码表。简单说,把7445个国标码放置在一个94行×94列的阵列中。阵列的每一行称为一个汉字的“区”,用区号表示;每一列称为一个汉字的“位”,用位号表示。区号范围是1—94,位号的范围也是1—94。这样,一个汉字在表中的位置可用它所在的区号与位号来确定。一个汉字的区号与位号的组合就是该汉字的“区位码”。区位码的形式是:高两位为区号,低两位为位号。国标码在区位码表中的安排是:1—15区是非汉字图形符区;16—55区是一级常用汉字区;56—87区是二级次常用汉字区;88—94区是保留区,可用来存储自造字代码。
  (二)汉字机内码(内码)
  机内码是计算机内部对汉字进行存储、处理和传输而编制的汉字代码。每个汉字的机内码占2个字节,并把每个字节的最高二进制位设为“1”作为汉字内码的标识。
  (三)汉字输入码(汉字外码)
  输入码即用于输入一个汉字的几个键码的组合,它与汉字的输入法有关。常用的汉字输入法有全拼、五笔、智能拼音等。如全拼“皇”的汉字输入码为huang。
  (四)汉字字形码
  汉字字形码又称汉字字模,它是指一个汉字供显示器和打印机输出的字形点阵代码。要在屏幕或打印机上输出汉字,汉字操作系统必须输出以点阵形式组成的汉字字形码。字形码由多个8位二进制数构成。一个汉字的字形码并不唯一,它与输出该汉字的点阵大小有关。存储一个8×8点阵汉字的点阵码需要8B的存储空间,存储一个16×16点阵汉字的点阵码需要32B的存储空间。
  (五)区位码、国标码和机内码的转换
  1.国标码=区位码(十六进制)+2020H
  具体方法为:先将一个汉字的十进制区号和十进制位号分别转换成十六进制数;然后再分别加上2020H,就得到此汉字的国标码。
  例如汉字“大”的区位码为2083(该汉字处于20区83位),则其国标码为:
  区号为20,位号为83
  将区位号转换为十六进制数:20=14H, 83=53H,则十六进制数为1453H
  十六进制数加上2020H:1453H+2020H=3473H
  2.机内码=国标码(十六进制) + 8080H
  例如汉字“大”的国标码为3473H,则其机内码为:3473H + 8080H=B4F3H。
  3.机内码=区位码(十六进制) + A0A0H
  (六)BCD码
  用四位二进制数来表示一位十进制数,称为二进制编码的十进制数,简称BCD码。BCD编码既具有二进制数的形式,又保持了十进制数的特点。四位二进制数可以组合出16种代码,能表示16种不同的状态,我们只需要使用其中的10种状态,就可以表示十进制数的0—9十个数码,而其他的六种状态为冗余状态。由于可以取任意的10种代码来表示十个数码,所以就可能产生多种BCD编码。常见的BCD码有8421码、2421码和余3码。
  常见的BCD码参照表
  十进制数8421码2421码余3码
  0000000000011
  1000100010100
  2001000100101
  3001100110110
  4010001000111
  5010110111000
  6011011001001
  7011111011010
  8100011101011
  9100111111100
  1.8421码
  8421码又称为NBCD码,主要特点是:它是一种有权码,四位二进制代码的位权从高到低分别为8,4,2,1;简单直观,每个代码与它所代表的十进制数之间符合二进制数和十进制数相互转换的规则;不允许出现1010—1111,这6个代码在8421码中是非法码。
  2.2421码
  2421码的主要特点是:它是一种有权码,四位二进制代码的位权从高到低分别为2,4,2,1;它是一种对9的自补码,即某数的2421码,只要自身按位取反,就能得到该数与9互补的2421码;不允许出现0101—1010,这6个代码在2421码中是非法码。
  3.余3码
  余3码的主要特点是:它是一种无权码,但也可看作是一种特殊的有权码,即在8421码的基础上加+3(+0011)形成的,故称余3码,在这种编码中各位的“1”不表示一个固定的十进制数值,因而不直观;它是一种对9的自补码;允许出现0000—0010、1101—1111,这6个代码在余3码中是非法码。
  (七)常用汉字字符集
  1.GB2312-80汉字编码
  2.GBK编码(Chinese Internal Code Specification)
  3.Unicode和CJK编码
  4.GB18030-2000编码
  5.BIG-5编码
Copyright© 2004-2010 HTEXAM.COM All Rights Reserved
华图教育 版权所有