### 编码
为什么要加上20H和80H?
1.区位码,国际码,内码的转换虽然简单,但为什么要这样换呢?
首先,GB2312虽然是对中文编码,但是里面也有对26个英文字母和一些特殊符号的编码,按理说这些和ASCII重合的字符无需再次进行编码,直接沿用ASCII编码即可
2.原来,当时在制定GB2312时候,决定对ASCII中的可打印字符,也就是英文字母,数字,和符号部分(33~126,127为不可打印的DEL)重新编入GB2312中,以两个字节表示,称之为全角字符(全角字符在屏幕上的宽度是ASCII字符的两倍,后来也因此称ASCII字符为半角字符)
而对于ASCII中前32个不可显示也不可打印的控制字符(ASCII码为0~31),以及第33个可显示但是不可打印的空格字符(ASCII码为32)等共33个不可打印字符的编码则直接沿用,不再重新编码。
3.因为要保留这33个不可打印字符,就不能直接采用区位码作为计算机直接处理的机内码,需要将区位码向后移动32以避开冲突(为什么是移开32而不是移开33呢,是因为区位码的区码好位码都是是从1开始计数的,不像ASCII码还是从0开始计数的)。
十进制数字32的十六进制表示就是20(为区别十进制,记作20H),也就是区位码加上20H的(区码和位码各自加上20H)才能得到国标码的原因。
4.
很显然
相关资源:、
https://www.bilibili.com/video/av67326533?from=search&seid=10435295054390730624
https://zhuanlan.zhihu.com/p/27120673
https://www.jianshu.com/p/59152ecb800a
https://blog.csdn.net/ugfffj/article/details/87385992
原文:https://www.cnblogs.com/sammul/p/11924138.html