1551h+2020h怎么算国标码和机内码的转换啊啊啊啊啊啊啊。。。。。具体点

区位码2590转换成国标码和机内吗~拜托拜托啦~在线等。。_百度知道此处所列的文章均是我自己从国外的网站摘抄并翻译的,由于英文水平有限,里面肯定有不少错漏.翻译这些东西没有其他的什么用途,只是提高自己的英语阅读能力和编程技术水平而已&&&&&
1.国标码:&国家标准信息交换用汉字编码&(GB2312-80标准),简称国标码。
国标码是二字节码, 用两个七位二进制数编码表示一个汉字。
2.区位码:为了使每一个汉字有一个全国统一的代码,区位码是国家规定的94*94的一个方阵,其中每行叫做一个区,每列叫做一个位,组合起来就组成了区位码,我们可以在相关网站查询某个汉字的区位码,例如汉字&我&的区位码是46 50 ,标识&我&在46区,50位。
3.机内码:机内码是在计算机中存储的汉子编码。(相当于AcsiII码)
三者之间的关系。
国标码=16进制的区位码+2020H
机内码=国标码+8080H
区位码---(+2020H)-----&国标码----(+8080H)-----&内码
区位码 = 内码 + A0A0H
例如&我&的的区位码是46 50 这是10进制的转化为16进制:2E32H
所以&我&的国标码:2E32H+H
所以&我&机内码: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(11111)个字符他们用了,用来表示英文字符和一些符号,就是ASCII码,但是汉字有很多,256个根本就不够,于是国家就用两个ASCII来表示一个汉字,就是2个字节标识一个汉字,例如&保&的区位码为:1703,所以国标码为:1703的10进制+H,然而:31H 和23H在ASCII中式有值的,31H在ASCII中表示数字1,23H表示的是&#&(这个可以在网上查询),那么如果我以国标码作为机内码的话,如果内存中有两个字节为31H和23H,那么到底是表示汉字&保&呢?还是字符1#呢?这样就有了歧义,但是解决办法就有了,0-127不是被英文字符占了吗?那么我就用127之后的来表示不就可以了吗?于是我把汉字的两个字节每个字节机上128(16进制就是80H),于是问题解决了,汉字&保&的机内码变为:H=B2A3H(10进制就是45475),打开记事本按住alt+45475看看是不是&保&,这样就不会和英文的ASCII冲突了。
1.字符编码的发展
第一阶段:ASCII阶段,(American Standard Code for Information Interchange, &美国信息交换标准码),计算机当时只支持英语,字符在计算机中都是以0和1的方式存储的。象a、b、c、d这样的52个字母(包括大写)、以及0、1、2等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,就必须要有一定的规则,于是美国有关的标准化组织就出台了所谓的ASCII编码,统一规定了上述常用符号用哪个二进制数来表示。(来自百度百科),ASCII码规定每个字符例如&a&使用1个字节来表示,也就是8为的二进制组合,那么就有11111一共256种组合,也就是可以表示256个不同的字符。
其中0-31:是控制字符或通讯专用字符(不可以显示的字符,其余为可显示字符),如控制符:LF(换行)、CR(回车)等。
32-126:是字符,其中32是空格,48-57为0-9的阿拉伯数字,65-90为26个大写英文字母,97-122为26个小写英文字母,其余的是一些标点符号,运算符号等。
ASSCII共计有128个,从0到127,也就是从11111,最高位都是0。
第二阶段:ANSI编码(本地化)阶段,ASCII只能表示英文字符,那么其他字符怎么表示呢?汉语是这样解决的,用两个ASCII表示一个汉字,而且不用前面的128个,为什么不用已经在上一篇中介绍了,因为前128个事人家的英文。不能占啊,否则就混乱了。比如汉字&中&在中文操作系统中使用[0xD6,0xD0] 这两个字节存储,为什么呢,这里简单解释一下,&中&的区位码是 54 48 ,那么&中&的,国标码就是54 48的十六进制+上H,那么&中&的机内码就是=&中的国标码+8080H=D6D0H(这都是上一篇的内容,不明白的可以看上一篇),这样每个汉字也都有了自己的编码,汉字编码解决了,这就是中国的GB2312编码标准,但是这是中国汉字的编码,那么其他国家呢?其他的国家的计算机操作系统中可能把[0xD6,0xD0] 这两个字节存储成他们的文字,而不是&中&,不同的国家和地区制定了不同的标准,这些使用 2 个字节来代表一个字符的各种文字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。
第三阶段:UNICODE(国际化),为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集,为各种语言中的每一个字符设定了统一并且唯一的数字编号,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
implementationvar& NM: Array[1..94, 1..94] of SFunction QWtoNM(X, Y: Integer): SBegin& SetLength(Result, 2);& Result[1] := Char(Ord(X+160));& Result[2] := Char(Ord(Y+160));
Procedure InitAllNM();var& i, j: IBegin& for i := 1 to 94 do& Begin&&& for j := 1 to 94 do&&& Begin&&&&& NM[i, j] := QWtoNM(i, j);&&&&
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);var& sTitle, sRow: S& i, j: Ibegin& InitAllNM();& for i := 1 to 94 do& Begin&&& sRow := '';&&& Memo1.Lines.Add('第' + IntToStr(i) + '区汉字');&&& Memo1.Lines.Add('---------------------------');&&& for j := 1 to 94 do&&& Begin&&&&& sRow := sRow + NM[i][j] + ' ';&&&&&& Memo1.Lines.Add(sRow);&&& Memo1.Lines.Add('---------------------------');&
阅读(...) 评论()国标码=区位码+2020H 这是什么意思 H是指什么_百度知道某汉字的区位码是5448,它的机内码是D6D0H,怎么算的_百度知道变形国标码是怎样的呢?是在前面加8080H还是2020H? - 爱问知识人
(window.slotbydup=window.slotbydup || []).push({
id: '2491531',
container: s,
size: '150,90',
display: 'inlay-fix'
变形国标码是怎样的呢?
信息交换用汉字编码字符集
《信息交换用汉字编码字符集》是由我国国家标准总局1980年发布,日开始实施的一套国家标准,标准号是GB 。它是计算机可以识别的编码,适用于汉字处理、汉字通信等系统之间的信息交换。基本集共收入汉字6 763个和非汉字图形字符682个。整个字符集分成94个区,每区有94个位。每个区位上只有一个字符,因此可用所在的区和位来对汉字进行编码,称为区位码。这个码是唯一的,不会有重码字。把换算成十六进制的区位码加上2020H,就得到国标码。国标码加上8080H,就得到常用的计算机机内码。1995年又颁布了《汉字编码扩展规范》(GBK)。GBK与GB 国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC10646—1和GB 13000—1的全部中、日、韩(CJK)汉字,共计20 902字。信息交换用汉字编码字符集和汉字输入编码之间的关系是,根据不同的汉字输入方法,通过必要的设备向计算机输入汉字的编码,计算机接收之后,先转换成信息交换用汉字编码字符,这时计算机就可以识别并进行处理;汉字输出是先把机内码转成汉字编码,
信息交换用汉字编码字符集
《信息交换用汉字编码字符集》是由我国国家标准总局1980年发布,日开始实施的一套国家标准,标准号是GB 。它是计算机可以识别的编码,适用于汉字处理、汉字通信等系统之间的信息交换。基本集共收入汉字6 763个和非汉字图形字符682个。整个字符集分成94个区,每区有94个位。每个区位上只有一个字符,因此可用所在的区和位来对汉字进行编码,称为区位码。这个码是唯一的,不会有重码字。把换算成十六进制的区位码加上2020H,就得到国标码。国标码加上8080H,就得到常用的计算机机内码。1995年又颁布了《汉字编码扩展规范》(GBK)。GBK与GB 国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC10646—1和GB 13000—1的全部中、日、韩(CJK)汉字,共计20 902字。信息交换用汉字编码字符集和汉字输入编码之间的关系是,根据不同的汉字输入方法,通过必要的设备向计算机输入汉字的编码,计算机接收之后,先转换成信息交换用汉字编码字符,这时计算机就可以识别并进行处理;汉字输出是先把机内码转成汉字编码,再发送到输出设备。
你好,是不是海派贵族Haipai Noble H5 哈,是属于贵族H序列的哈,有H3
(诚心回答,如果觉得满意,望给 “好评”,谢谢你的采纳....
大家还关注

我要回帖

更多关于 区位码 国标码 的文章

 

随机推荐