区位码、国标码与机内码的转换
- 格式:ppt
- 大小:173.00 KB
- 文档页数:4
机内码和区位码的转换方法
机内码和区位码之间的转换方法可用玛法泽型编码转换方法实施。
玛法泽型编码转换方法利用了四位的4进制码,将机内码的每四
位码看成一个整体,结合其他2个权重,依次做8次右移操作,得到
区位码的每一位值。
操作执行过程:
1. 将机内码的每四位用单独的变量(以X1,X2,X3,X4等为例)来
表示;
2. 分别计算X1,X2,X3,X4对应的权重,以其乘积表示,权重为(8,4,2,1);
3. 将X1,X2,X3,X4按序表示出8位权重和值,8位权重和值可以
用1个变量(以Y为例)表示,Y的每一位的值只与X1到X4其中的一位值有关;
4. Y的每一位分别从右至左取出,按位反码,得到了区位码。
区位码,汉字交换码和汉字机内码的概念是什么?它们之间有什么关系?区位码:1981年国家颁布了GB2312汉字标准共有6763个,其中一级3755,二级3008,还有682非汉字字符。
并为每个字符规定了标准编码,便于在计算机内部相互转换。
作为GB2312标准只是定义了一张94×94的二维表。
其中行为区号,列为位号。
这样可以利用区号和位号来找到其中的汉字。
这种编码就是我们所说的区位码。
比如陈(1934) 区号:19 位号:34,为了处理与存储的方便,每个汉字的区号和位号在计算机内部分别用一个字节来表示区位码无法于汉字进行通信,因为ASCII码中规定了OOH-1F作为控制码使用,这样就发生了冲突。
由于计算机不是中国人发明的所以只能听从于国际标准ISO2022规定区号和位号都加上32(20H),这样就防止冲突。
经过加上32以后的编码称为国际交换码陈-区号:19+32= 5100010011+00100000=00110011位号:34+32=6600100010+00100000=01000010即5166 16进制3342由于文本中通常混合使用汉字和西文字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。
此问题的解决方法之一是将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1。
这种高位为1的双字节汉字编码即为GB2312汉字的机内码,简称为“内码”.00110011最高位变为1则从33变为B301000010最高位变为1则从42变为C2这样一来,陈的机内码应该为B3C2这里要说明的是不管你是采用什么样的输入法输入汉字,其汉字的机内码都是相同的。
如果要从一个汉字的机内码转换为区位码,其实就是相反的方向进行运算.。
汉字区位码、国标码(交换码)和机内码转换方法一般换算全部用十六进制。
机内码、国际码是十六进制的,区位码是十进制的。
具体换算步骤:(H表示十六进制,D表示十进制)1.将四位区号分为两部分,两位数为一组。
2.把这两个数字转换成十六进制,用公式计算。
国际码=区位码(十六进制)+2020H机内码=国际码+8080H例如:某汉字的区位码是2534。
则25D=19H,34D=22H则国际码=1922H+2020H=3952H,机内码=3952H+8080H=B9D2H 1、转换关系:【设转为十六进制的区位码为区位码I;转换原因在第3点】•区位码I=区位码的区码(前两位)和位码(后两位)分别转十六进制再按原顺序组合起来•国标码•=区位码I+2020H 【2020H不拆分】•机内码=国标码+8080H【8080H不拆分】•机内码=区位码I+A0A0H【A0A0H不拆分】注意:区位码是十进制表示,由区(行)和位(列)组成一个二维结构,所以转换过程需要将区位码拆分后分别转十六进制。
2、例子:•将“江”的区位码2913转为机内码【末尾D代表十进制,末尾H代表十六进制】:1、2913D中区和位分别转十六进制:29D=1DH,13D=DH2、国标码=区位码+2020H=1D0DH+2020H=3D2DH3、机内码=国标码+8080H=3D2DH+8080H=BDADHor 机内码=区位码+A0A0H=1D0DH+A0A0H=BDADH3、扩展【扩展内容主要与为什么要加2020H或8080H这些有关】:区位码:每个汉字都有唯一的定位码,定位码一个字节,定位码一个字节,总共占用两个字节。
国标码:。
共7445个字符,其中一级3755个,二级3008个,图形符号682个【一级汉字按拼音排序,二级用部首排序】,全部国家标准代码被放置在94个区域中,每个区域中有94个矩阵。
每个字节占用8位,主要使用7位编码(高位为0)。
- 为啥要将区位码转为国标码?汉字编码之前,已经有了标准的ASCII,开发者只沿用了ASCII中32个控制字符其他ASCII被覆盖。
汉字国标码,机内码和区位码的不同汉字是中华文化的瑰宝,是中华民族的文化符号。
在现代社会中,汉字的应用范围越来越广泛,汉字输入也成为人们日常生活中不可或缺的一部分。
汉字输入需要用到汉字国标码、机内码和区位码,这三种码制虽然都是用来表示汉字的,但它们之间存在着不同,下面我们就来一一探究。
一、汉字国标码汉字国标码是由国家标准化委员会制定的一种汉字编码体系,也称为GB码或GB2312码。
它是在1980年提出的,是我国第一个汉字编码标准,其编码范围包括了6763个常用汉字和682个生僻字,共计7445个汉字。
汉字国标码采用两字节表示一个汉字,每个字节的取值范围是0xA1~0xFE,共计94个字符,其中0xA1~0xA9和0xF7~0xFE 是用来表示第一字节的,0xA1~0xFE是用来表示第二字节的。
汉字国标码的优点是编码规范,兼容性好,适用范围广,能够兼容各种操作系统和软件程序,因此在汉字输入中得到了广泛应用。
但其缺点也比较明显,就是字符集太小,不支持繁体字和一些特殊符号。
二、机内码机内码是计算机内部使用的一种二进制编码体系,也称为ASCII 码。
它是由美国信息交换标准委员会在1963年制定的,其编码范围包括了128个字符,包括了英文字母、数字、标点符号和控制字符等。
机内码采用一个字节表示一个字符,每个字节的取值范围是0~127。
机内码的优点是编码简单,易于处理,因此在计算机内部得到广泛应用。
但其缺点也很明显,就是只支持英文字母等ASCII字符,不支持汉字和其他语言的字符。
三、区位码区位码是中国大陆地区常用的一种汉字编码体系,也称为GB码。
它是在1956年由中国科学院信息处理研究室提出的,是我国第一个汉字编码标准。
区位码采用一个字节表示一个汉字,其中第一个字节表示该汉字所在的区,第二个字节表示该汉字在该区的位置。
区号取值范围是0xA1~0xFE,共计94个区,每个区号包含了94个位置码,位置码取值范围也是0xA1~0xFE。
1.国标码:“国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。
国标码是二字节码, 用两个七位二进制数编码表示一个汉字。
2.区位码:为了使每一个汉字有一个全国统一的代码,区位码是国家规定的94*94的一个方阵,其中每行叫做一个区,每列叫做一个位,组合起来就组成了区位码,我们可以在相关网站查询某个汉字的区位码,例如汉字“我”的区位码是46 50 ,标识“我”在46区,50位。
3.机内码:机内码是在计算机中存储的汉子编码。
三者之间的关系。
国标码=16进制的区位码+2020H机内码=国标码+8080H例如“我”的的区位码是46 50 这是10进制的转化为16进制:2E32H所以“我”的国标码:2E32H+2020H=4E52H所以“我”机内码:4E52H+8080H=CED2(其实就是把二进制国标码的最高位置1,注意看E和2都没有变化)机内码转化为2进制就可以再计算机中存储,这里面转化为10进制可以输出。
CED2的10进制为:52946,这里我们打开记事本,按住alt建,输入52946即可以看见“我”,因为52946是“我”的机内码的10进制。
这里面有两个问题:1.为什么不用区位码直接表示国标码,为要加上2020H?2.机内码为什么要在国标码的基础上加上8080H,而不是直接只用国标码作为机内码?这里我先解决第二个问题,国标码就是由2个ASCII码组成,为什么呢(这里简单介绍一下,后面会详细说明)?因为在英文中只有26个字母,所以用一个字节就可以表示了,用一个字节的话可以表示2^8个符号,就是256个符号,绰绰有余啊,于是外国人制订了规范,规定0-127(00000000-01111111)个字符他们用了,用来表示英文字符和一些符号,就是ASCII码,但是汉字有很多,256个根本就不够,于是国家就用两个ASCII来表示一个汉字,就是2个字节标识一个汉字,例如“保”的区位码为:1703,所以国标码为:1703的10进制+2020H=3123H,然而:31H 和23H在ASCII中式有值的,31H在ASCII中表示数字1,23H表示的是“#”(这个可以在网上查询),那么如果我以国标码作为机内码的话,如果内存中有两个字节为31H和23H,那么到底是表示汉字“保”呢?还是字符1#呢?这样就有了歧义,但是解决办法就有了,0-127不是被英文字符占了吗?那么我就用127之后的来表示不就可以了吗?于是我把汉字的两个字节每个字节机上128(16进制就是80H),于是问题解决了,汉字“保”的机内码变为:3123H+8080H=B2A3H(10进制就是45475),打开记事本按住alt+45475看看是不是“保”,这样就不会和英文的ASCII冲突了。
对汉字进行传输,处理和存储时使用汉字的
在计算机中,对汉字进行传输、处理和存储时使用汉字的()。
A.字形码B.国标码C.输入码D.机内码
参考答案D解析:显示或打印汉字时使用汉字的字形码,在计算
机内部时使用汉字的机内码。
汉字机内码、国标码和区位码三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十六进制后加A0H得到对应的机内码。
计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。
汉字信息在系统内传送的过程就是汉字编码转换的过程。
汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB2312—80,又称为“国标码”。
国标码:所有汉字编码都应该遵循这一标准,汉字机内码的编码、汉字字库的设计、汉字输入码的转换、输出设备的汉字地址码等,都以此标准为基础。
GB2312—80就是国标码。
该码规定:一个汉字用
两个字节表示,每个字节只有7位,与ASCII码相似。
考点三文字编码基础再现1、ASCII码ASCII码全称为“美国国家信息交换标准代码”,通常用来对英文字符进行编码。
该编码使用7位二进制数,共可以表示128个字符。
一个ASCII码存储时占用1字节,存储ASCII时在最高位加“0”。
ASCII码中的数字、字母按顺序依次排列。
2、汉字编码汉字在计算机内采用二进制编码,我国最早采用的汉字编码是GB2312。
每个汉字用2个字节进行编码,每个字节的最高位用“1”填充。
汉字的输入码(外码):是利用汉字相关特征对指定汉字进行编制的输入代码,包括:音码、形码、音形结合码、自然码、流水码等。
汉字的输出码(字形码):用来存储汉字的字体形状汉字的交换码:计算机系统间交换汉字通常采用GB2312标准。
处理码又称内码,用UltraEdit或WinHex工具软件观察内码时,ASCII码只占1个字节,汉字占2个字节。
典例3.(2008.10月高考)小王用“UltraEdit”软件观察“春眠不觉晓’,这几个字.显示的十六进制内码如第4题图(见附图页)所示,从中可以看出字符”眠”的内码是A.C3DFH B.B4BAH C.B4H D.C3H解析:在计算机内部一个汉字占两个字节,一个ASCII占一个字节。
选A。
即时训练31、(考试说明)用WinHex软件观察“IT行业”四个字符,显示的十六进制内码如图所示,则字符“T”的内码用二进制数表示应该是第5题图(A)(10011000)2(B)(1010100)2(C)(110110)2(D)(1101)2解析:在计算机内部一个汉字占两个字节,一个ASCII占一个字节。
字符T对应十六进制54,再转化为二进制为1010100。
故选B。
2.(2008年10月浙江省高考)制订ASCII码、汉字国标码、商品条形码等标准化编码主要是为了信息表达的A.自由化 B.规范化 C.形象化 D.通俗化解析:考查信息标准化编码的意义,故选B。
3.(2009年3月浙江省高考)汉字点阵是一种用黑白两色点阵来表示汉字字形的编码,一个16×16点阵字模的存储容量为A.1字节B.16字节C.32字节D.64字节解析:一个点阵对应二进制1位(比特,bit或b),16×16÷8=32字节。
国标码、机内码、区位码国家标准代码:国标码国家标准代码,简称国标码。
是中华人民共和国的中文常用汉字编码集,亦为新加坡采用。
国家标准强制标准冠以“GB”,推荐标准冠以“GB/T”,国标码是一个四位十六进制数。
现时中华人民共和国官方强制使用GB 18030标准,但较旧的计算机仍然使用GB 2312。
“GB”在计算机领域中常常表示GB 2312-80或GB 18030-2005。
两者是汉语编码系统的标准,在中国大陆和新加坡用于简体中文。
机内码:国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B 即为B1A3H,因此,“保”字的机内码就是B1A3H。
区位码1980年,为了使每一个汉字有一个全国统一的代码,我国颁布了第一个汉字编码的国家标准:GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。
区位码是一个四位的十进制数,每个区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码。
ASCⅡ目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII 码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。
适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
简介因为1位二进制数可以表示(2^1)2种状态:0、1;而2位二进制数可以表示(2^2)4种状态:00、01、10、11;依次类推,7位二进制数可以表示(2^7)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。
汉字的编码1.汉字信息的交换码汉字信息交换码简称交换码,也叫国标码。
规定了7 445个字符编码,其中有682个非汉字图形符和6763个汉字的代码。
有一级常用字3 755个,二级常用字3 008个。
两个字节存储一个国标码。
国标码的编码范围是2121 H一7E7EH。
区位码和国标码之间的转换方法是将一个汉字的十进制区号和十进制位号分别转换成十六进制数,然后再分别加上20H,就成为此汉字的国标码:汉字国标码=区号(十六进制数)+20H位号(十六进制数)+ 20H而得到汉字的国标码之后,我们就可以使用以下公式计算汉字的机内码:汉字机内码=汉字国标码+8080H2.汉字偷入码汉字输人码也叫外码,都是由键盘上的字符和数字组成的。
目前流行的编码方案有全拼输人法、双拼输入法、自然码输人法和五笔输人法等。
3.汉字内码汉字内码是在计算机内部对汉字进行存储、处理的汉字代码,它应能满足存储、处理和传输的要求。
一个汉字输人计算机后就转换为内码。
内码需要两个字节存储,每个字节以最高位置‘1”作为内码的标识。
4.汉字字型码汉字字型码也叫字模或汉字输出码。
在计算机中,8个二进制位组成一个字节,它是度量空间的基本单可见一个16 x 16点阵的字型码需要16 x 16/8=32字节存储空间。
汉字字型通常分为通用型和精密型两类。
5.汉字地址码汉字地址码是指汉字库中存储汉字字型信息的逻辑地址码。
它与汉字内码有着简单的对应关系,以简化内码到地址码的转换。
6.各种汉字代码之间的关系汉字的输人、处理和输出的过程,实际上是汉字的各种代码之间的转换过程。
如图1- 1表示了这些汉字代码在汉字信息处理系统中的位置及它们之间的关系.。