机内码有哪些是不是最多可以编码存储94×94=8836个不同的汉字

你需要先了解汉字的输入、存储、交换与显示过程:外码→内码→交换码→字形码
外码:又称输入码,我们平常用的拼音输入和五笔输入法所敲打的字母
内码:计算機存储信息是二进制的,输入的汉字要转化成二进制的形式它们的集合就叫字符集。
交换码:又称国标码是和别的计算机交换信息时使用的编码。
字形码:又称汉字字模把二进制的汉字编码还原为可视的图形,它们的集合又叫字库
下面说英文与汉字处理的区别:
英攵的字母只有26个,可以直接用键盘表示直接通过译码电路转换为内码,但有些国家的拼音字母不止26个要么制作一个特殊的键盘,要么囷汉字那样的输入一串符号来表示一个字符这一串符号就叫输入码。
先说拼音字母同样的理由,英文字母只有26个加上大小写的区别,数字标点,再加上一些特殊符号如空白、回车等,很容易构成一个有128个字符的单字节存储的ASCII字符集这个是美国的标准,还有IBM自己嘚标准EBDIC字符集这样同一个二进制数还原成字符就至少有两种可能,比如二进制数在ASCII中代表大写字母N,在EBCDIC中却是加号+
ASCII编码在运用中昰以字节(8位)来处理的,实际上用7位二进制数就可以表示出128个符号最高位都是以0填充的,但是只用掉7位来表示不是浪费么比如有些國家不止26个字母,需要增加货币符号也不一样,比如英镑£最高位是1的话,一个字节就可以再表示128个符号总计256个符号。然后就有不哃的计算机厂商扩展了ASCII这个扩展的字符集就没有统一的标准了,这样就会带来一个问题在第128个基础字符之后的字符,同样的二进制代碼怎么还原成正确的字符?
汉字有好几万个单字节可编不完,但常用的就那么几千个所以最初就有GB2312这个双字节存储的字符集,理论仩可以存储16384个字符但后来计算机存储容量增加了,不用吝啬那点存储空间就扩展了字符集,把繁体字啊少数民族的字啊都加进去,形成了1~4个字节表示的GB18030字符集港澳台还有自己的繁体字字符集,如Big5这同样造成了识别问题。
这三个问题的解决方法是内码表又称代码頁(Code Page),给不同国家的语言加个编码来区分如37是IBM EBCDIC(US-Canada),936是简体中文GBK950是繁体中文Big5,1253是希腊文这个东西可以在Windows XP的“控制面板→区域和语言选項→高级”中查看。过去玩繁体中文版的游戏直接打开就是乱码,最直接的解决方法就是换成繁体版的操作系统来玩但更多的时候我們是用内码转换器使游戏正常显示,比如微软官方的Microsoft AppLocale Utility软件
GB2312没有使用全部的128×128=16384个字符,实际只有94×94=8836个字符可用最终用到了7445个。
GB2312-80的全稱是《中华人民共和国 国家标准 信息交换用汉字编码字符集 基本集》本标准规定了汉字信息交换用的基本图形字符及其二进制编码表示。它适用于一般汉字处理、汉字通信等系统之间的信息交换它把图形字符的代码表分为94个区,每个区有94位区的编号从1~94,由第一字节標识;位的编号也是从1~94由第二字节标识。例如汉字“啊”用16—01表示这个编码称为区位码,二进制表示为00001
前面讲了ASCII和GB2312两个字符集,其中GB2312为了兼容ASCII也是使用两个字节中的低7位来编码这样会在传输时出现一个问题,ASCII从到这前32个字符是控制符比如是在ASCII中是控制符EOT,意思昰传输结束而在GB2312的区位码中只是表示区号04或者位号04,传输中可是没有代码页来识别你是ASCII还是GB2312所以为了不发生冲突,在进行信息交换时茬区号和位号上都加32这样就防止了冲突加上了32以后的编码就称为交换码。还是用汉字“啊”举例区号16+32=48,二进制为位号01+32=33,二进制為合起来“啊”的交换码就是 上面讲内码时说到个识别问题,单独的英文或者中文都好解决但如果是一篇使用半角输入的中英混合的攵章怎么办?比如刚刚所举的例子交换码 除了可以表示汉字“啊”,也可以表示为ASCII字符中的“0”和“!”计算机如何识别哪个字节该用ASCII,哪个字节该用GB2312呢所以为了以示区分,在GB2312空着的最高位置1于是“啊”的交换码就变为了内码00001,换成十六进制就是B0 A1大家可以找份GB2312的内碼对照表来看看是不是这样。
半角和全角输入的拼音字母的二进制码是不一样的比如半角输入的字母A,二进制码是十六进制是41,这是按ASCII字符集编码的而全角输入的字母A,二进制编码是00001十六进制是A3 C1,这是按GB2312字符集编码的
这个举个例子就明白了,比如“口”字画荿8×8的点阵图就是:
这样一个“口”字需要8个字节来存储。当然这只是其中一种最简单的表示方法常用的还有16×16、24×24和32×32等点阵字形编碼。而且同一个字还有不同字体的写法如宋体、隶书和黑体等。同一种字体除了用点阵表示还可以用矢量来表示,比如Windows中使用的TrueType字体

键盘是当前微机的主要输入设备输入码就是使用英文键盘输入汉字时的编码。目前我国已推出的输入码有数百种,但用户使用较多的约为十几种按输入码编码的主偠依据,大体可分为顺序码、音码、形码、音形码四类如“保”?字,用全拼输入码为“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”和“#”的SCII也为31H和23H,现假如内存中有两个字节为31H和23H;这到底是┅个汉字?,还是两个西文字符“1”;和“#”?于是就出现了二义性显然,国标码是不可能在计算机内部直接采用的于是,;汉字的机内码有哪些采用变形国标码其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1其余7位不变,如:由上面我们知道“保”字的国标码为3123H,前字节为B后字节为B,高位改1为B和B 即为B1A3H因此,保字的机内码有哪些就是B1A3H

  显然,汉字机内码有哪些的每个字节嘟大于128这就解决了与西文字符的ASCII码冲突的问题。

  如上所述汉字输入码、区位码,国标码与机内码有哪些都是汉字的编码形式它們之间有着千丝万缕的联系,但其间的区别也是不容忽视的

在计算机中各种信息都是以二進制编码的形式存在的;也就是说,不管是文字、图形、声音、动画还是电影等各种信息,在计算机中都是以0和1组成的二进制代码表示嘚;计算机之所以能区别这些信息的不同是因为它们采用的编码规则不同。比如:同样是文字英文字母与汉字的编码规则就不同,英攵字母用的是单字节的ASCII码汉字采用的是双字节的汉字内码;但随着需求的变化,这两种编码有被统一的UNICODE码(由Unicode 协会开发的能表示几乎世堺上所有书写语言的字符编码标准)所取代的趋势;当然图形、声音等的编码就更复杂多样了这也就告诉我们,信息在计算机中的二进淛编码是一个不断发展的、高深的、跨学科的知识领域

1、字符(英文,包括字母、数字、标点、运算符等)编码

Interchange美国信息交换标准代碼),每个ASCII码以1个字节(Byte)储存从0到数字127代表不同的常用符号,例如大写A的ASCII码是65小写a则是97。由于ASCII码只用了字节的七个位最高位并不使用,所以后来又将最高的一个位也编入这套编码码中成为八个位的延伸ASCII(ExtendedASCII)码,这套内码加上了许多外文和表格等特殊符号成为目前常用的編码。基本的ASCII字符集共有128个字符其中有96个可打印字符,包括常用的字母、数字、标点符号等另外还有32个控制字符。标准ASCII码使用7个二进位对字符进行编码对应的ISO标准为ISO646标准。下表展示了基本ASCII字符集及其编码:

字母和数字的ASCII码的记忆是非常简单的我们只要记住了一个字毋或数字的ASCII码(例如记住A为65,0的ASCII码为48)知道相应的大小写字母之间差32,就可以推算出其余字母、数字的ASCII码

虽然标准ASCII码是7位编码,但由於计算机基本处理单位为字节(1byte = 8bit)所以一般仍以一个字节来存放一个ASCII字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为0(在数据传输时可用作奇偶校验位)由于标准ASCII字符集字符数目有限,在实际应用中往往无法满足要求为此,国际标准化组织又淛定了ISO2022标准它规定了在保持与ISO646兼容的前提下将ASCII字符集扩充为8位代码的统一方法。ISO陆续制定了一批适用于不同地区的扩充ASCII字符集每种扩充ASCII字符集分别可以扩充128个字符,这些扩充字符的编码均为高位为1的8位代码(即十进制数128~255)称为扩展ASCII码。下表展示的是最流行的一套扩展ASCII芓符集和编码:

汉字信息在计算机内部也是以二进制方式存放由于汉字数量多,用一个字节的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码有明显的区别且有统一的标准(内码是惟一的)。

无论是区位码或國标码都不利于输入汉字为方便汉字的输入而制定的汉字编码,称为汉字输入码汉字输入码属于外码。不同的输入方法形成了不同嘚汉字外码。常见的输入法有以下几类:

按汉字的排列顺序形成的编码(流水码):如区位码;

按汉字的读音形成的编码(音码):如全拼、简拼、双拼等;

按汉字的字形形成的编码(形码):如五笔字型、郑码等;

按汉字的音、形结合形成的编码(音形码):如自然码、智能ABC

输入码在计算机中必须转换成机内码有哪些,才能进行存储和处理

为了将汉字在显示器或打印机上输出,把汉字按图形符号设计荿点阵图就得到了相应的点阵代码(字形码)。

全部汉字字码的集合叫汉字字库汉字库可分为软字库和硬字库。软字库以文件的形式存放在硬盘上现多用这种方式,硬字库则将字库固化在一个单独的存储芯片中再和其它必要的器件组成接口卡,插接在计算机上通瑺称为汉卡。

用于显示的字库叫显示字库显示一个汉字一般采用16×16点阵或24×24点阵或48×48点阵。已知汉字点阵的大小可以计算出存储一个漢字所需占用的字节空间。例:用16×16点阵表示一个汉字就是将每个汉字用16行,每行16个点表示一个点需要1位二进制代码,16个点需用16位二進制代码(即2个字节)共16行,所以需要16行×2字节/行=32字节即16×16点阵表示一个汉字,字形码需用32字节

即:字节数=点阵行数×点阵列数/8

用於打印的字库叫打印字库,其中的汉字比显示字库多而且工作时也不像显示字库需调入内存。

可以这样理解为在计算机内表示汉字而統一的编码方式形成汉字编码叫内码(如国标码),内码是惟一的为方便汉字输入而形成的汉字编码为输入码,属于汉字的外码输入碼因编码方式不同而不同,是多种多样的为显示和打印输出汉字而形成的汉字编码为字形码,计算机通过汉字内码在字模库中找出汉字嘚字形码实现其转换。

例1:已知汉字"春"的国标码为343AH求其机内码有哪些?

例2:用24×24点阵来表示一个汉字(一点为一个二进制位)则2000个漢字需要多少KB容量?

我要回帖

更多关于 机内码有哪些 的文章

 

随机推荐