fn➕esc键盘灯亮怎么回事?

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

}

Interchange)的简称。计算机是由美国人发明的,当他们在使用计算机的时候必然会面临一个问题,如何将自己国家使用的字母和字符存储在计算机中。于是他们先将经常使用的字符进行编号(比如65:A,66:B,67:C),得到ASCII字符集,ASCII字符集由128个字符组成,编码范围是0-127,具体见后面的ASCII字码表。由于计算机只能识别二进制信息,所以美国人就将美国字符的码位转换为相对应的二进制信息进行存储(比如A在ASCII字符集的编号是65,65的二进制是0100 0001,在计算机中就代表A),具体见后面的ASCII编码表。

 扩展ASCII编码:当一些欧洲国家开始使用计算机时,他们发现ASCII编码表不能满足他们的编码需求,原因是法国,德国等一些国家发现他们国家的一些字符不在ASCII编码表中(法语、德语有一些字母和英语不一样),幸好ASCII编码表只使用了128个字符(编码范围是11 1111),而一个字节有2^8 = 256 个bit,所以还有128个字符没有被使用(编码范围是11 1111),那些欧洲国家就将自己国家特有的字符编到ASCII编码中,得到扩展ASCII编码表。

 GB2312编码:但是当中国人开始使用计算机时,我们发现不管是ASCII编码表还是扩展ASCII编码表远远不能满足我们的需求,因为中国有几千个汉字。所以我们计划用两个字节来存储我们的汉字(16个bit),这样计算机就能表达2^16 = 65536个字符,这么多字符肯定能满足我们汉字的需求。英文转换为二进制语言是先设计ASCII字符集,然后将字母对应的编号转换为二进制编码。所以汉字汉化为二进制语言也要先设计字符集,这个字符集就是 GB2312字符表(GB是国标的简写,2312是标准号)。

因为汉字特别多,为避免混乱,我们不能像英文那样直接编号,所以我们采用分区管理的方法,我们设计了94个区,每个区有94位,总共有8836个码位,得到 GB2312字符集,具体如下:

10-15区为空白区,为备用区,为以后可能多出的字符留出空间;

16-55区收录了3755个一级汉字(常用汉字),按拼音排序;

56-87区收录了3008个二级汉字(不常用汉字,如上表所示),按部首/笔画排序;

88-94区空白区,为汉字备用区,为以后可能多出的汉字留出空间;

举例:“侃”字在表4中显示是57区第0行9列,所以“侃”字的码位(字符集编号)为5709

这时我们要将目光转向ASCII码,ASCII码中前31位都是通信和电脑控制字符(系统字符),这些字符汉字也需要,所以我们的汉字编码要避开这些系统字符,所以我们要将GB2312字符集的区位码加上32(20H),从而得到GB2312编码。

但我们的电脑中有很多的英文字符,所以在操作的时候必须兼容ASCII码,我们想到的方法是在GB2312编码的区位码的基础上加上128(80H),这样GB2312编码就能兼容ASCII码了,我们将加上128的GB2312编码称为汉字内码(机内码),有的时候为省事直接加上160(A0H)

57的十六进制为0x39(0x是十六进制的意思),因为GB2312码要考虑兼容ASCII码(意思是说GB2312字符集小于127的部分不能和ASCII字符集冲突,毕竟电脑上基本上是英文),所以0x39需要加上0xA0(十进制为160),0x39+0xA0=0xD9;同理,0x09+0xA0=0xA9,所以“侃”字的GB2312编码为0x390xA9,具体如下图1:

为什么GB2312编码是使用十六进制,而不是采用二进制来表示呢,因为GB2312编码的二进制有16个数,太长了,十六进制与二进制有2^4 = 16的关系(四位二进制数表示一个十六进制数,例如

1111 = F)所以采用十六进制数。

GBK编码:但是汉字实在是太多,有些字还是无法表达,所以就规定:不在要求低字节一定是127后的编码,只要第一个字节大于127,就表明是一个汉字的开始,这样就新增了近20000个新的汉字(包括繁体字)和符号,我们把扩展之后的编码称为GBK编码。(0x390xA9中0x39是高字节,0xA9是低字节)

GB18030编码:但是,中国有56个民族,所以,我们再次对编码规则进行了扩展,又加了近几千个少数民族的字符,于是再次扩展后得编码叫做GB18030。

中国的程序员觉得这一系列编码的标准是非常的好,于是统统称他们叫做"DBCS"(Double Byte Charecter Set 双字节字符集)。

Unicode编码:unicode也称为统一码、万国码。当计算机机进一步向世界普及时,每个国家都定义了一套自己的编码规则,从而导致相互之间不懂对方的编码,于是国际标准化组织(ISO)决定定义一套编码来统一编码,这个编码方案就叫Unicode,可以将Unicode理解成一套包含世界各国文字的字符集。Unicode字符集(UCS-2 + UCS-4)可以简写为UCS(Unicode Character Set),UCS-2用两个字节编码,UCS-4用4个字节编码。在Unicode字符集中,ASCII编码表里的字符,保持其编码不变,只是将长度扩展到了16位,其他国家的字符全部统一重新编码。

UTF-16编码和UTF-8编码是将Unicode字符集存储在计算机时不同编码方法。

UTF-16编码:UTF-16比较好理解,就是用两个字节来表示一个字符,我们通常把Unicode与UTF-16等同,但他们是不一样的,UTF-16 能表示的字符数有 65536个(2^16),看起来很多,但是实际上目前 Unicode 5.0 收录的字符已经达到 99024 个字符,早已超过 UTF-16 的存储范围, 所以UTF-16编码并不能完全表达Unicode字符集的内容。

UTF-8编码:UTF-8编码是将Unicode字符集转换为计算机编码的另一种方法,因为按照UTF-16编码每一个英文字符就要花费两个字节,而按照ASCII编码却只要使用一个字节,所以UTF-16编码方式相对于欧美国家来说太浪费空间,世界的话语权在欧美国家手里,所以就发明了UTF-8编码方法。

编码方式如下:将字符编码分为六种情况,如下表5

 下面举三个例子:

 所以UTF-8编码其实是各国利益平衡的结果,世界各国浪费存储空间让欧美国家接受一个统一的标准码(如果不让步,欧美各国继续使用ASCII码)。

另外提一下各种码之间是如何转换的

}

我要回帖

更多关于 caps键和fn键亮着怎么办 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信