计算机内汉字处理的过程中为什么要把国际码转换成机内码?

如题所述

汉字信息在计算机内部也是以二进制方式存放。由于汉字数量多,用一个字节的128种状态不能全部表示出来,因此在1980年我国颁布的《信息交换用汉字编码字符集——基本集》,即国家标准GB2312-80方案中规定用两个字节的十六位二进制表示一个汉字,每个字节都只使用低7位(与ASCII码相同),即有128×128=16384种状态。由于ASCII码的34个控制代码在汉字系统中也要使用,为不致发生冲突,不能作为汉字编码,128除去34只剩94种,所以汉字编码表的大小是94×94=8836,用以表示国标码规定的7445个汉字和图形符号。每个汉字或图形符号分别用两位的十进制区码(行码)和两位的十进制位码(列码)表示,不足的地方补0,组合起来就是区位码。把区位码按一定的规则转换成的二进制代码叫做信息交换码(简称国标码)。国标码共有汉字6763个(一级汉字,是最常用的汉字,按汉语拼音字母顺序排列,共3755个;二级汉字,属于次常用汉字,按偏旁部首笔画顺序排列,共3008个),数字、字母、符号等682个,共7445个。由于国标码不能直接存储在计算机内,为方便计算机内部处理和存储汉字,又区别于ASCII码,将国标码中的每个字节在最高位改设为1,这样就形成了在计算机内部用来进行汉字的存储、运算的编码叫机内码(或汉字内码,或内码)。内码既与国标码有简单的对应关系,易于转换,又与ASCII码有明显的区别,且有统一的标准并且内码是唯一的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-24
我感觉这个问题问得好!——为什么要把国标码转换成机内码?将国标码和机内码全都使用机内码的编码标准,这样不是就既解决了交换码的问题,又解决了机内码的问题么?干嘛要设计两套编码?有人说,机内码是为了解决汉字交换码跟ASCII码的编码的值域冲突,我感觉这个说法很牵强——如果真是这样,那么把机内码直接也同时用来作为汉字交换码,不就不存在交换码和ASCII码的冲突了吗?这个问题一直以来都有困惑。后来有人告诉我,GB18030 就是专门针对我提出的这类问题而产生的解决方案。因为 GB18030 中全套编码就可以既用来作为交换码,又用来作为机内码使用。这就达成了交换码和机内码在编码上的统一。而且他们还说,GB18030 之相对于 GB2312 的先进性就在于此——可以用同一套编码完成交换码和机内码的两种编码功能——但不知这么说对不对,请各位专家们予以进一步分析。
相似回答