区位码国标码机内码转换问题简述

上传人:简****9 文档编号:115436931 上传时间:2019-11-13 格式:DOC 页数:5 大小:38.51KB
返回 下载 相关 举报
区位码国标码机内码转换问题简述_第1页
第1页 / 共5页
区位码国标码机内码转换问题简述_第2页
第2页 / 共5页
区位码国标码机内码转换问题简述_第3页
第3页 / 共5页
区位码国标码机内码转换问题简述_第4页
第4页 / 共5页
区位码国标码机内码转换问题简述_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《区位码国标码机内码转换问题简述》由会员分享,可在线阅读,更多相关《区位码国标码机内码转换问题简述(5页珍藏版)》请在金锄头文库上搜索。

1、国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,;再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D1103H-+20H3123H。 输入码、区位码、国标码与机内码 国家标准局1980年颁布的信息交换用汉字编码字符集基本集(代号为GB2312 80)规定的汉字交换码作为国家标准汉字编码。 GB2312 80中共有7445个字符符号: 汉字符号6763个 一级汉字3755个(按汉语拼音字母顺序排列) 二

2、级汉字3008个(按部首笔划顺序排列) 非汉字符号682个 GB2312 80规定,我们知道,键盘是当前微机的主要输入设备,;输入码就是使用英文键盘输入汉字时的编码。目前,我国已推出的输入码有数百种,但用户使用较多的约为十几种,按输入码编码的主要依据,大体可分为顺序码、音码、形码、音形码四类,如“保”字,用全拼,输入码为码为“BAO”,用区位码,输入码为“1703”,用五笔字型则为“WKS”。 计算机只识别由0、1组成的代码,ASCII码是英文信息处理的标准编码,汉字信息处理也必须有一个统一的标准编码。 汉字交换码(国标码)主要用于汉字信息交换,我国国家标准局于1981年5月颁布了信息交换用汉

3、字编码字符集基本集,代号为GB2312-80,共对6763个汉字和682个图形字符进行了编码,其编码原则为:汉字用两个字节表示,每个字节用七位码(高位为0),;所有的国标码汉字及符号组成一个94行94列的二维代码表中。在此方阵中,每一行称为一个区,每一列称为一个位。这个方阵实际上组成一个有94个区(编号由01到94),每个区有94个位(编号由01到94)的汉字字符集。每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,此即区位码,其中,高两位为区号,低两位为位号。这样区位码可以唯一地确定某一汉字或字符;反之,任何一个汉字或符号都对应一个唯一的区位码,没有重码。如“保”字

4、在二维代码表中处于17区第3位,区位码即为“1703 ”。 国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,;再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D1103H-+20H3123H。 国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”字,国标码为31H和23H,而西文字符“1”和“#”的SCII也为31H和23H,现假如内存中有两个字节为31H和23

5、H,;这到底是一个汉字,还是两个西文字符“1”;和“#”?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B 即为B1A3H,因此,字的机内码就是B1A3H;。 显然,汉字机内码的每个字节都大于128,这就解决了与西文字符的ASCII码冲突的问题。 如上所述,汉字输入码、区位码、;国标码与机内码都是汉字的

6、编码形式,它们之间有着千丝万缕的联系,但其间的区别也是不容忽视的 汉字的国标码=汉字的区位码十进制转换为十六进制,再加上2020H。 汉字的机内码=汉字的国标码(十六进制)+8080H 区位码(十进制-十六进制)+2020H=国标码+8080H=机内码 还有区位码+A0A0=机内码 将十进制区码和位码转换为十六进制的区码和位码 这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。 如:已知汉字的大的区位码是2083,区位码是10进制的,而国标码和机内码是16进制的,首先要把2083转化成16进制。 就是把20除16取余得到14 如同10进制转化2进制 同样把83除16取余 最后把得到

7、的数加2020是国标码 再加上8080是机内码 简单的方法: 先将区位码的高位和低位,变成16进制。 加 2020H 就是国标码;再加 8080H 就是机内码。 从区位码到机内码,也就是直接加A0A0H,就可以了。 如某汉字的区位码是5448,54化成16进制是36,48化成16进制是30 合起来是3630H,加A0A0H,结果是D6D0H,所以其机内码是D6D0。我们知道,键盘是当前微机的主要输入设备,输入码就是使用英文键盘输入汉字时的编码。目前,我国已推出的输入码有数百种,但用户使用较多的约为十几种,按输入码编码的主要依据,大体可分为顺序码、音码、形码、音形码四类,如保字,用全拼,输入码为

8、码为BAO,用区位码,输入码为1703,用五笔字型则为WKS。计算机只识别由0、1组成的代码,ASCII码是英文信息处理的标准编码,汉字信息处理也必须有一个统一的标准编码。我国国家标准局于1981年5月颁布了信息交换用汉字编码字符集基本集,代号为GB2312-80,共对6763个汉字和682个图形字符进行了编码,其编码原则为:汉字用两个字节表示,每个字节用七位码(高位为0),国家标准将汉字和图形符号排列在一个94行94列的二维代码表中,每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,此即区位码,如保字在二维代码表中处于17区第3位,区位码即为1703。国标码并不等于

9、区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,这样就得了一个与国标码有一个相对位置差的代码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码,相当于如果不转换的话,在两个字节上分别加上32即可。如:保字的国标码为3123,它是经过下面的转换得到的:1703D1103H-+20H3123H。国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如保字,国标码为31H和23H,而西文字符1和#的SCII也为31H和23H,现假如内存中有两个字节为31H和23H,这到底是一个汉字,还是两个西文字符1和#?

10、于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,也就是如果国标码是16进制的,直接加上8080H即可。如:由上面我们知道,保字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B即为B1A3H,因此,保字的机内码就是B1A3H。显然,汉字机内码的每个字节都大于128,这就解决了与西文字符的ASCII码冲突的问题。如上所述,汉字输入码、区位码、国标码与机内码都是汉字的编码形式,它们之间

11、有着千丝万缕的联系,但其间的区别也是不容忽视的。公式总结:区位码 2020H 国标码国标码 8080H 机内码为了适应计算机处理汉字信息的需要,1981年我国颁布了GB2312国家标准。该标准选出6763个常用汉字(其中,一级常用汉字3755个,二级汉字3008个)和682个非汉字字符,并为每个字符规定了标准代码,以便在不同的计算机系统之间进行汉字文本交换。GB2312字符集构成一个94行、94列的二维表,行号称为区号,列号称为位号,每一个汉字或符号在码表中的位置用它所在的区号和位号来表示。为了处理与存储的方便,每个汉字的区号和位号在计算机内部分别用一个字节来表示。例如,“学”字的区号为49,

12、位号为07,它的区位码即为4907,用2个字节的二进制数表示为:00110001 00000111区位码无法用于汉字通信,因为它可能与通信使用的控制码(00H1FH)(即031)发生冲突。ISO2022规定每个汉字的区号和位号必须分别加上32(即二进制数00100000),经过这样的处理而得的代码称为国标交换码,简称交换码,因此,“学”字的国标交换码计算为:00110001 00000111+00100000 +00100000-01010001 00100111用十六进制数表示即为5127H。由于文本中通常混合使用汉字和西文字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。此

13、问题的解决方法之一是将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1。这种高位为1的双字节汉字编码即为GB2312汉字的机内码,简称为内码。因此,“学”字的机内码为:11010001 10100111用16进制表示即为D1A7H。最后要指出的是,汉字的输入编码与汉字的机内码是不同范畴的概念。不管采用什么样的编码输入法(例如拼音、五笔字型等)来输入一个汉字,其机内码都是相同的。说明:本文整理自大学计算机信息技术教程(南京大学出版社)一书。-汉字库通俗地说就是计算机软件系统中的汉字仓库,依据不同的标准,字库中汉字的数量是不同的,以前的主要标准有:1、GB 231

14、2 汉字编码字符集从1975年开始,我国为了研究汉字的使用频度,进行了大规模的字频统计工作,内容包括工业、农业、军事、科技、政治、经济、文学、艺术、教育、体育、医药卫生、天文地理、自然、化学、文字改革、考古等多方面的出版物,在数以亿计的浩瀚文献资料中,统计出实际使用的不同的汉字数为6335个,而其中有3000多个汉字的累计使用频度达到了99.9%,而另外的3000多个累计频度不到0.1%,说明了常用汉字与次常用汉字的数量不足7000个,这就为国家制定汉字库标准提供了依据。1980年颁布了信息交换用汉字编码字符集基本集的国标交换码,国家标准号为:GB2312-80,选入了6763个汉字,分为两级

15、,一级字库中有3755个,是常用汉字,二级字库中有3008个,是次常用汉字;还选入了682个字符,包含有数字、一般符号、拉丁字母、*假名、希腊字母、俄文字母、拼音符号、注音字母等。以前我国大陆的各种中文DOS版本、Windows3.1 /3.2版本,装入的字库都是国标一二级字库。遇到“镕、啰、瞭、袆、祎、曌、赟、贇、鱻、驫、犇”等汉字,既无法输入,又不能打印。 后来国家技术监督局又颁布了一个与之相对应的繁体字集,全称信息交换用汉字编码字符集辅助集,标准号为GB/T12345-90。-GB2312编码大约包含6000多汉字(不包括特殊字符),编码范围为第一位b0-f7,第二位编码范围为a1-fe(第一位为cf时,第二位为a1-d3),计算一下汉字个数为6762个汉字。当然还有其他的字符。包括控制键和其他字符大约7573个字符编码。GBK编码是对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号