汉字在计算机中的编码输出码,内码,输入码和交换码的具体含义
区位码:1980年,为了使每一个汉字有一个全国统一的代码,我国颁布了第一个汉字编码的国家标准:GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码。国际码 中国汉字通行的国际标准为我国于1981年制订的“信息交换用汉字编码字符集”,其标准号为GB2312—80,简称国际码,是我国应用最广泛的汉字编码字符集。在汉字计算机编码标准中,目前最大的汉字编码是台湾的标准CNS11643,目前(4.0)共收录可考证之繁简、日、韩语汉字共76,067个,但并不普及,只有在户政系统等少数环境使用。台港民间通用的大五码收录繁体汉字13053个。GB18030是中华人民共和国现时最新的内码字集,GBK收录简体、繁体及日语、韩语汉字20912个,而早期的GB2312收录简体汉字6763个。而Unicode的中日韩统一表意文字基本字集则收录汉字20902个,另有两个扩展区,总数亦高达七万多字。 初期的汉字系统字数不足,很多事物以通假字表示,使文字的表述存在较大歧义。为完善表述的明确性,汉字经历了逐步复杂、字数大量增加的阶段。汉字数量的过度增加又引发了汉字学习的困难,单一汉字能表示的意义有限,于是有许多单一的汉语意义是用汉语词语表示,例如常见的双字词。目前汉语书写的发展多朝向造新词而非造新字。汉字编码系统为进行信息交换,各汉字使用地区都制订了一系列汉字字符集标准。输入码、区位码、国标码与机内码国家标准局1980年颁布的《信息交换用汉字编码字符集"基本集》(代号为GB231280)规定的汉字交换码作为国家标准汉字编码。GB231280中共有7445个字符符号:汉字符号6763个一级汉字3755个(按汉语拼音字母顺序排列)二级汉字3008个(按部首笔划顺序排列)非汉字符号682个GB231280规定,我们知道,键盘是当前微机的主要输入设备,;输入码就是使用英文键盘输入汉字时的编码。目前,我国已推出的输入码有数百种,但用户使用较多的约为十几种,按输入码编码的主要依据,大体可分为顺序码、音码、形码、音形码四类,如“保”?字,用全拼,输入码为码为“BAO”,用区位码,输入码为“1703”,用五笔字型则为“WKS”。计算机只识别由0、1组成的代码,ASCII码是英文信息处理的标准编码,汉字信息处理也必须有一个统一的标准编码。汉字交换码(国标码)主要用于汉字信息交换,我国国家标准局于1981年5月颁布了《信息交换用汉字编码字符集——基本集》,代号为GB2312-80,共对6763个汉字和682个图形字符进行了编码,其编码原则为:汉字用两个字节表示,原则上,两个字节可以表示256×256=65536种不同的符号,作为汉字编码表示的基础是可行的。但考虑到汉字编码与其它国际通用编码,如ASCII西文字符编码的关系,我国国家标准局采用了加以修正的两字节汉字编码方案,只用了两个字节的低7位。这个方案可以容纳128×128=16384种不同的汉字,但为了与标准ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操作码。所以每个字节只能有94个编码。这样,双七位实际能够表示的字数是:94×94=8836个。所有的国标码汉字及符号组成一个94行94列的二维代码表中。在此方阵中,每一行称为一个"区",每一列称为一个"位"。这个方阵实际上组成一个有94个区(编号由01到94),每个区有94个位(编号由01到94)的汉字字符集。每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,此即区位码,其中,高两位为区号,低两位为位号。这样区位码可以唯一地确定某一汉字或字符;反之,任何一个汉字或符号都对应一个唯一的区位码,没有重码。如“保”字在二维代码表中处于17区第3位,区位码即为“1703”。国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D->1103H->+20H->3123H。(20h就是十进制的32,上文提到了“但为了与标准ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操作码”)国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”?字,国标码为31H和23H,而西文字符“1”和“#”的ASCII也为31H和23H,现假如内存中有两个字节为31H和23H,这到底是一个汉字?,还是两个西文字符“1”;和“#”于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B即为B1A3H,因此,“保”字的机内码就是B1A3H。显然,汉字机内码的每个字节都大于128,这就解决了与西文字符的ASCII码冲突的问题。如上所述,汉字输入码、区位码、;国标码与机内码都是汉字的编码形式,它们之间有着千丝万缕的联系,但其间的区别也是不容忽视的。