计算机中字符的编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机中字符的编码
一个二进制数位简称为位(英文名称为bit)。计算机中最直接、最基本的操作就是对二进制位的操作。
一个二进制位可表示两种状态(0或1)。
两个二进制位可表示四种状态(00,01,10,11)。
位数多,所表示的状态就越多。
ASCII 码
ASCII 码是美国信息交换用标准代码(American S tandard Codefor Information Inte rchange)。ASCII码虽然是美国国家标准,但它已被国际标准化组织(ISO)认定为国际标准,为世界公认,并在世界范围内通用。
ASCII码用一个8位二进制数(字节)表示,每个字节只占用了7位,最高位恒为0。7位ASCII码可以表示128(27=128)种字符,其中通用控制字符34个,阿拉伯数字10个,大、
当最高位为0时,称为基本ASCII码,当最高位为1时,形成扩充的ASCII码,它表示数的范围为128~255,可表示128种字符。通常各个国家都把扩充的ASCII码作为自己国家语言文字的代码。
汉字编码
我国用户在使用计算机进行信息处理时,一般都要用到汉字。由于汉字是象形文字,字的数目很多,常用汉字就有3000~5000个,加上汉字的形状和笔画多少差异极大,因此,不可能用少数几个确定的符号将汉字完全表示出来,或像英文那样将汉字拼写出来。汉字必须有它自己独特的编码。
1. 汉字信息交换码(国标码)
《信息交换用汉字编码字符集·基本集》是我国于1980年制定的国家标准GB2312-80,代号为国标码,是国家规定的用于汉字信息处理使用的代码依据。
GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括几种外文字母、数字和符号)的代码。
6763个汉字又按其使用频度、组词能力以及用途大小分成一级常用汉字3755个和二级常用汉字3008个。
一级汉字按拼音字母顺序排列;若遇同音字,则按起笔的笔形顺序排列;若起笔相同,则按第二笔的笔形顺序排列,依次类推。所谓笔形顺序,就是横、竖、撇、点和折的顺序。二级汉字按部首顺序排列。
在此标准中,每个汉字(图形符号)采用双字节表示。每个字节只用低7位,最高位恒为1。由于低7位中有34种状态是用于控制字符,因此,只有94(128-34=94)种状态可用于汉字编码。这样,双字节的低7位只能表示94×94=8836种状态。
此标准的汉字编码表有94行、94列,其行号称为区号,列号称为位号。双字节中,用高字节表示区号,低字节表示位号。非汉字图形符号置于第1~11区,一级汉字3755个且于第16~55区,二级汉字3008个置于第56~87区。
每个图形字符的汉字交换码,均用两个字节的低7位二进制码表示。汉字国标码通常用十六进制数表示。
例如:“中”字的区号为54,位号为48,计算它的二进制数和十六进制数国标码。
解:先将区、位号分别加上32 :
54+32=86
48+32=80
分别转换为二进制数:
(86)10=01010110
(80)10=01010000
得到二进制数国标码为:
01010110 01010000。
最后通过8 4 2 1 ── 二进制取位法转换成十六进制汉字国标码为:5650。
又如“国”字的区号为25,位号为90,用以上相同的方法得到它的国标码为:
二进制:00111001 01111010
十六进制:397A
2. 汉字的机内码
汉字的机内码是供计算机系统内部进行存储、加工处理、传输统一使用的代码,又称为汉字内部码或汉字内码。目前使用最广泛的一种为两个字节的机内码,俗称变形的国标码。这种格式的机内码是将国标GB2312-80 交换码的两个字节的最高位分别置为l而得到的。其最大优点是机内码表示筒单,且与交换码之间有明显的对应关系,同时也解决了中西文机内码存在二义性的问题。
例如“中”的国标码为十六进制:
5650(01010110 01010000),
其对应的机内码为十六进制:
D6D0(11010110 11010000)。
同样,“国”字的国标码为:397A,其对应的机内冯为:B9FA。
汉字的机内码与国标码的关系:
◆十六进制:
机内码区号(16)=国标码高位字节+80H
机内码位号(16)=国标码低位字节+80H
◆十进制:
机内码区号=国标码高位字节(10)+128
机内码位号=国标码低位字节(10)+128
汉字的区位码与国标码的关系:
◆十六进制:
国标码高位字节=区位码区号(16)+20H
国标码低位字节=区位码位号(16)+20H
◆十进制:
国标码高位字节(10)=区位码区号+32
国标码低位字节(10)=区位码位号+32
汉字的区位码与机内码的关系:
◆十六进制:
机内码高位字节=区位码区号(16)+A0H
机内码低位字节=区位码位号(16)+A0H
◆十进制:
机内码高位字节(10)=区位码区号+160
机内码低位字节(10)=区位码位号+160
3. 汉字的输入码(外码)
汉字输入码是为了将汉字通过键盘输入计算机而设计的代码。汉字输入编码方案很多,其表示形式大多用字母、数字或符号。输入码的长度也不同,多数为四个字节。综合起来可分为流水码、拼音类输入法、拼形类输入法和音形结合类输入法几大类。
4. 汉字的字形码
汉字字形码是汉字字库中存储的汉字字形的数字化信息,用于汉字的显示和打印。目前汉字字形的产生方式大多是数字式,即以点阵方式形成汉字。因此,汉字字形码主要是指汉字字形点阵的代码。
汉字字形点阵有l6×16点阵、24×24点阵、32×32点阵、64×64点阵、96×96点阵、128×128点阵、256×256点阵等。
一个汉字方块中行数、列数分得越多,描绘的汉字也就越细微,但占用的存储空间也就越多。汉字字形点阵中每个点的信息要用一位二进制码来表示。对于16×16点阵的字形码,需要用32个字节(16×16÷8=32)表示;24×24点阵的字形码需要用72个字节(24×24÷8=72)表示。
汉字字库,是汉字字形数字化后,以二进制文件形式存储在存储器中而形成的汉字字模库。汉字字模库亦称汉字字形库,简称汉字字库。汉字字库可分为软汉字字库和硬汉字字库。
汉字字库文件存储在软盘或硬盘中,称为软汉字宇库。汉字字库存储在汉卡中,将汉卡安装在机器的扩展槽中,称为硬汉字字库,亦称汉卡。