输入码、区位码、内码、国标码的出现原因

您所在的位置:网站首页 二进制机内码是什么 输入码、区位码、内码、国标码的出现原因

输入码、区位码、内码、国标码的出现原因

2024-06-16 15:28| 来源: 网络整理| 查看: 265

2020H、8080H

区位码、内码、国标码怎么转换非常简单,但是令人迷惑的是为什么要那么转换?这种转换不可能平白无故地那样转换!

首先,注意到一点,GB2312虽说是对中文编码,但是里面有对26个英文字母和一些特殊符号的编码,按理说这和ASCII重合的部分应该无需设置,沿用ASCII中不就行了?但是当时在制定GB2312之前,就决定覆盖掉ASCII中符号和英文字母部分,所以将其中的英文字母和符号重新编入GB2312中。而对于ASCII中前32个控制字符则继续沿用。所以保留前32字符,就需要将汉字编码向后偏移32,十六进制20H,这也就是区位码要加上20H得到国标码,这就是GB2312的编码规范。

而这样产生一个弊端,某些早期用ASCII码编码的英文文章无法打开,一打开就是乱码。比如:如“保”字,国标码为31H和23H,而西文字符“1”和“#”的ASCII也为31H和23H,现假如内存中有两个字节为31H和23H,这到底是一个汉字?还是两个西文字符“1”和“#”于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,也就是说应该要兼容早期ASCII码而不是覆盖它!为了解决这个问题,将字节的最高位设为1,因为ASCII中使用7位,最高位为0。这样就区分开了ASCII和GB2312。这也是为什么要加上8080H。

其实我们说国标码才是GB2312的规范编码,后来的内码是微软为了解决冲突问题而采用的方式,本质上是修改了GB2312的编码标准,而这种方法最后产生的编码最后就被一些教科书称为内码。

总的来说,为方便汉字输入而形成的汉字编码为输入码,属于汉字的外码,输入码因编码方式不同而不同。为在计算机内表示汉字而统一的编码方式形成汉字编码叫国标码,计算机还不能将国标码作为汉字在计算机中的表现形式,因为会和ASCII码发生冲突,所以又产生了汉字的机内码,机内码是惟一的。为显示和打印输出汉字而形成的汉字编码为字型码,计算机通过汉字内码在字模库中找出汉字的字型码,实现其转换。

国标码 = 区位码 + 2020H; 机内码 = 国标码 + 8080H;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3