这都快毕业了,开始找工作了,才开始尝试写博客.想来在学习软件工程专业课程的过程中也曾做过一些笔记,遇到过一些难以费解的问题,试图百度去搞清楚它。电脑里存了一些,现在快毕业了,打算从事此专业工作,之前学的有的也忘了。所以今天开始打算把我的笔记整理下,在整理过程中尽量回忆起来同时也分享给需要他们的人,毕竟软件工程这专业自学的人多,本身的知识点也碎,所以希望给那些正在学习软件工程专业的人一些帮助,避免他们少走弯路,也算我做的小小贡献吧!在下只是个即将毕业的大学生,如有什么错误请各位朋友大胆指出来,我们一起探讨交流。下面开始我的第一篇博客。
一、 ASCII码的起源
我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状 态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。
上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。
ASCII码一共规定了128个字符的编码,比如空格"SPACE"是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
二、百花齐放的编码规则
英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。
但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (ג),在俄语编码中又会代表另一个符号。但是不管怎样,所有这些编码方式中,0–127表示的符号是一样的,不一样的只是128–255的这一段