一个字节中有8个bit分别表示了0到255共256个数字
其中0到127共128个数字被ascii码使用了
后面ascii拓展又说用了32个数字作为C1控制块 分别是0x80到0x9F
所以后面剩下96个数字没有使用 分别是0xA0到0xFF
96个数字代表着96个可能性,显然每个数字和一个中文字符一 一对应是不可能的
因为96个中文字符远远不够用。
因此,使用两个ascii码来表示一个中文字符
两个ascii可以产生96x96约等于10000个可能性,也就是能对应约10000个字符
勉强够用
那么问题来了 gb2321并不是使用96x96 而是使用94x94为什么呢?
据我了解gb2321定义了94个区,每个区又有94位。
将区/位转化为二进制编码时都要加上0xA0
最小0xA0+1 = 0xA1 最大0xA0+94 = 0xFE
范围是0xA1到0xFE共94个数字
上面所说ascii码有96个数字未使用,中文编码gb2321,就使用了这96个数字中的94个
对比一下,可以发现刚好是掐头去尾,为什么要这么做呢?有什么意义,又或者是没意义。
https://blog.csdn.net/cjw201231010314/article/details/100484452