ASCII码和汉字码

   国家标准汉字字符集GB2312-80共收集了共7445个汉字和图形符号,其中汉字6763个,分为二级,一级汉字3755个,二级汉字3008个。 汉字图形符号根据其位置将其分为94个“区”,每个区包含94个汉字字符,每个汉字字符又称为一个“位”。区的序号和位的序号都是从01到94。


       UCDOS软件中的文件HZK16和文件ASC16分别为16×16的国标汉字点阵文件和8×16的ASCII码点阵文件,以二进制格式存储。 在文件HZK16中,按汉字区位码从小到大依次存有国标区位码表中的所有汉字,每个汉字占用32个字节,每个区为94个汉字。在文件ASC16中按ASCII码从小到大依次存有8×16的ASCII码点阵,每个ASCII码占用16个字节。
       在PC机的文本文件中,汉字是以 机内码的形式存储的, 每个汉字占用两个字节:第一个字节为区码为了与ASCII码区别,范围从十六进制的0A1H开始(小于80H的为ASCII码字符), 对应区位码中区码的第一区;第二个字节为位码,范围也是从0A1H开始,对应某区中的第一个位码。这样,将汉字机内码减去0A0A0H就得该汉字的区位码。


       例如汉字“房”的机内码为十六进制的“B7BF”,其中“B7”表示区码,“BF”表示位码。所以“房”的区位码为0B7BFH-0A0A0H=171FH。将区码和位码分别转换为十进制得汉字“房”的区位码为“2331”,即“房”的点阵位于第23区的第31个字的位置,相当于在文件HZK16中的位置为第32×[(23-1) ×94+(31-1)]=67136B以后的32个字节为“房”的显示点阵。
       ASCII码的显示与汉字的显示原理相同,在ASC16文件中不存在机内码的问题,其显示点阵直接按ASCII码从小到大依次排列,不过每个ASCII码在文本中只占1个字节并且小于80h,每个ASCII码为8X16点阵,即在ASCII16文件中,每个ASCII码的点阵也只占16个字节。
 
背景资料:
       1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的"区位码"。在汉字的区位码中,高两位为区号,低两位为位号。在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字。其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。所以,当我们需要n个任意汉字时,我们不必建一个全部汉字表,而是利用区位码实现常用汉字的提取。

 

源:http://hi.baidu.com/%B8%F8%EB%DE%CC%ED%CD%EB%B7%B9/blog/item/9b6619907be27e8ba877a42b.html

 

机内码     
国标码:是指我国1981年公布的“中华人民共和国国家标准信息交换汉字编码”,代号为“GB2312-80”。由连续的两个字节组成。

2.机内码:在计算机内表示汉字的代码是汉字机内码汉字机内码国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码

3.输入码:汉字输入码是指直接从键盘输入的各种汉字输入方法的编码,属于外码。

4.字型点阵码:用点阵方式来构造汉字字型,然后存储在计算机内,构成汉字字模库。目的是为了能显示和打印汉字。

(1)区位码先转换成十六进制数表示
(2)(区位码十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码

汉字的机内码是指在计算机中表示一个汉字的编码。机内码与区位码稍有区别。汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。经过这些处理,用机内码表示一个汉字需要占两个字节,分别  称为高位字节和低位字节,这两位字节的机内码按如下规则表示:
    高位字节=区码+20H+80H(或区码+A0H)
    低位字节=位码+20H+80H(或位码+AOH)
    由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。
    例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。

2603 =     1A03H     区位码

                + A0A0H

    =             BAA3H     机内码

汉字的编码知识
信息编码各国有各国不同的编码,国际上统一使用的编码为ASCII(美国标准信息交换代码),我国使用的有国标码BG(中文),和BIG5(中文繁体)两种。

附带要知道:中文字库(字库文件名,大小,扩展名,存放位置)
            中文输入方法(语音输入,键盘输入,手写输入,扫描输入等)

1.汉字的编码

(1)国标码:是指我国1980年公布的“信息交换汉字编码字符集”,代号为“GB2312-80”。由连续的两个字节组成。

(2)机内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码。

(3)输入码:汉字输入码是指直接从键盘输入的各种汉字输入方法的编码,属于外码。

(4)字型点阵码:用点阵方式来构造汉字字型,然后存储在计算机内,构成汉字字模库。目的是为了能显示和打印汉字。

编码的转换举例
  汉字 区位码 16进制  国标码  机内码
  文  4636  2E24H  4E44H   CEC4H

“文”的区位码为4636,区码和位码分别用16进制表示即为“2E24H”, 0010 1110 0010 0100转换成国标码“4E44H”,0100 1110 0100 0100机内码为“CEC4H”, 1100 1110 1100 0100

2.汉字的输入方法

汉字输入方法目前有两大类四种。

(1)键盘输入法。这是最常用的,利用各种汉字输入方法的编码敲击键盘来输入汉字;

(2)非键盘输入法。目前主要有三种方法。 

手写笔输入法:利用汉字识别技术,通过书写笔在感应板上书写汉字把其输入的方法。

语音输入法:利用语音识别技术,通过口说来输入汉字。

扫描识别输入,是将印或写在纸上的汉字通过扫描仪输入计算机,再经相应软件处理后转换成汉字机内码。

3.汉字字符集的概念

有两种汉字字符集

(1)国标码字符集GB2312-80:该字符集收录了6763个常用汉字,其中一级汉字3755个,二级汉字3008个。另外还收录了各种符号682个,合计7445个。

(2)GBK汉字集:GBK即汉字扩充内码规范,又称大字符集,一共收录了20900个汉字。在Windows简体中文版中,又增加了101个补充字,一共有21001个字。它包容了GB2312-80的6763个常用汉字,台湾BIG5码收录了13000多个汉字,是目前见到的收录汉字最多的汉字系统

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值