机内码与国标码区别
发布网友
发布时间:2022-03-23 16:51
我来回答
共4个回答
懂视网
时间:2022-03-23 21:13
一个汉字的机内码与国标码之间的差别是前者各字节的最高位二进制值各为1,而后者为0。机内码是汉字最基本的编码,不管是什么汉字系统和汉字输入方法,输入的汉字外码到机器内部都要转换成机内码,才能被存储和进行各种处理。
国家标准局颁布的《信息交换用汉字编码字符集基本集》(代号为GB2312 80)规定的汉字交换码作为国家标准汉字编码。 GB2312 80中共有7445个字符符号: 汉字符号6763个 一级汉字3755个(按汉语拼音字母顺序排列) 二级汉字3008个(按部首笔划顺序排列) 非汉字符号682个 GB2312 80规定,我们知道,键盘是当前微机的主要输入设备,输入码就是使用英文键盘输入汉字时的编码。目前,我国已推出的输入码有数百种,但用户使用较多的约为十几种,按输入码编码的主要依据,大体可分为顺序码、音码、形码、音形码四类,如“保”字,用全拼,输入码为“BAO”,用区位码,输入码为“1703”,用五笔字型则为“WKS”。
国家标准强制标准冠以“GB”。推荐标准冠以“GB/T”。与很多ISO国际标准相比,很多国家标准等同采用(IDT,identical to 其他标准)、修改采用(MOD,modified in relation to 其他标准;2000年以前称作“等效采用,EQV, equivalent to 其他标准)或非等效采用(NEQ,not equivalent to 其他标准)。
热心网友
时间:2022-03-23 18:21
输入码、区位码、国标码与机内码
输入码、区位码、国标码与机内码,这些字对每一位computer
fan
来说,可能都不陌生,但其中的联系与区别,可能就不那么清楚了,(笔者作为一名中专电脑教师,经常遇到同学问类似的问题),下面就这问题讲述一下,以飨读者。
我们知道,键盘是当前微机的主要输入设备,;输入码就是使用英文键盘输入汉字时的编码。目前,我国已推出的输入码有数百种,但用户使用较多的约为十几种,按输入码编码的主要依据,大体可分为顺序码、音码、形码、音形码四类,如“保”?字,用全拼,输入码为码为“BAO”,用区位码,输入码为“1703”,用五笔字型则为“WKS”。
计算机只识别由0、1组成的代码,ASCII码是英文信息处理的标准编码,汉字信息处理也必须有一个统一的标准编码。我国国家标准局于1981年5月颁布了《信息交换用汉字编码字符集——基本集》,代号为GB2312-80,共对6763个汉字和682个图形字符进行了编码,其编码原则为:汉字用两个字节表示,每个字节用七位码(高位为0),;国家标准将汉字和图形符号排列在一个94行94列的二维代码表中,;每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,此即区位码,;如“保”字在二维代码表中处于17区第3位,区位码即为“1703
”。
国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,;再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”?字的国标码为3123H,它是经过下面的转换得到的:1703D->1103H->+20H->3123H。
国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”?字,国标码为31H和23H,而西文字符“1”和“#”的SCII也为31H和23H,现假如内存中有两个字节为31H和23H,;这到底是一个汉字?,还是两个西文字符“1”;和“#”?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B
即为B1A3H,因此,?字的机内码就是B1A3H;。
显然,汉字机内码的每个字节都大于128,这就解决了与西文字符的ASCII码冲突的问题。
如上所述,汉字输入码、区位码、;国标码与机内码都是汉字的编码形式,它们之间有着千丝万缕的联系,但其间的区别也是不容忽视的。
热心网友
时间:2022-03-23 19:39
我这样跟你说个流程,可能不是非常确切,但可以帮助你理解: 机外码→区位码→国标码→机内码。
1、机外码就是你外界输入的字符,这个字符输入后会有一个相对应的区位码(就是一个94*94的棋盘格格,你输入的汉子会对应里面的一个格子,行+列就是我们这里的区+位),
2、区位码经过换算可以变成国标码(所以区位码→国标码这一步只是表示转换下而已),
3、国标码再经过换算可以变成机内码(一般是16进制数表示)。
******************************************************************
下面我再解释下为什么要这样换算来换算去。
汉子国标码是我们国家搞的,是针对汉子编码的一个标准。但是在它之前已经有了ASCII码,ASCII码是西文字符。所以两种标准一起存在于电脑里面就会有冲突的可能,比如同一个数值一个不小心既可以是国标码也可以是ASCII码,那样就乱套了。所以我们这边要对国标码进行一定的换算,使它避开ASCII码的数值范围,换算以后的国标码就成了机内码,这样它就可以很妥当的跟ASCII码共存了。
热心网友
时间:2022-03-23 21:13
机内码(16进制)-8080(16进制)=国标码。