计算机基础方面的知识对于一些非科班出身的同学来说一直是他们心中的痛,对于科班出身的同学来说,很多同学工作后也意识到了自己所学知识的不足和不足,想回头补充基础知识。(威廉莎士比亚,温斯顿,计算机名言)关于计算机基础的课程很多,内容复杂,但无论是相关书籍还是大学课程,都有点偏离工作。特别是,计算机基础知识体系很复杂,从零学习或复习需要很多时间。
考虑到这一点,这篇文章系列可以更快地补充计算机领域的三个基本知识:计算机组成原理、操作系统和计算机网络。所有这些都是大学计算机课最重要的内容。文章(WHO)对这些内容进行了提炼和总结,放弃了作为程序员不需要掌握的知识。
目的是:
帮助大家形成计算机知识的结构体系有助于理解计算机底层原理,帮助大家在工作实践中学习其中优秀的设计。这一篇是构成计算机组成原理的计算机的字符和代码集。
欢迎关注、转发、收集、评论
字符编码集的记录
ASCII代码
对于ASCII代码,相信大家平时学习和工作都知道。
ASCII代码,英文全称:美国信息交换标准代码,翻译:美国信息交换标准代码是我们常用的代码。那是怎么回事?
在计算机上,所有数据在存储和运算时都必须使用二进制数(因为计算机用高平和低平分别表示1和0)。例如,A、B、C、D等52个字符(包括大写字母)和0、1等数字中常用的符号(例如*、#当然,每个人都可以承诺自己的一套(称为代码)。如果对于字母A,比尔盖茨想用0001表达,乔布斯想用0010表达,那么他们沟通的时候没有人能理解对方的语言。因此,必须使用相同的编码规则,以便计算机能够在不引起混乱的情况下相互通信。因此,美国相关标准化组织引入了ASCII编码,一致规定了表示上述常用符号的二进制数。
标准ASCII代码(也称为基本ASCII代码)使用7位来表示所有大写和小写字母、数字0至9、标点符号和美国英语中使用的特殊控制字符。共定义128个(2的7次方)字符。
下面通过表格了解一些ASCII代码。
部分ASCII代码
表中列出了常用字符的ASCII代码。例如,字母a为01100001,字母(不是数字~)1为00110001.
在计算机早期,ASCII代码可以满足特定群体的使用,但随着计算机的发展和计算机的普遍性,ASCII代码无法满足人们的使用需求,如一些数学符号和一些国家的符号。因此,ASCII代码扩展为8位表示一个字符。这就是扩展的ASCII代码。扩展的ASCII代码可以代表256个字符。
扩展ascii代码
下图显示了扩展的ASCII代码表。
扩展ASCII代码
其中包括常用的数学运算符、带有音符的欧洲字符和其他常用符号、表符号等。通过使用扩展的ASCII代码,对原始代码表进行了极大的补充,使计算机能够表达的内容越来越丰富。
字符编码集国际化
随着计算机的进一步发展,越来越多的国家加入到计算机的使用中,对字符编码集的要求也越来越高。对欧洲、中亚、东亚、拉丁美洲等国家来说,语言丰富,体系不同,不组合限定符。特别是中国、韩国、日本等国的语言最为复杂,ASCII编码表根本无法表达这些语言,因此迫切需要新的编码集,即字符集的国际化。
中文编码集
GB2312
GB2312是1980年制定的中国汉字编码国家标准,是我国第一套完整的代码,共收录7445个字符,共6763个字符,682个字符,汉字占2个字节。
GBK
GB2312不符合国际标准,所以中国科学家在1995年推出了第二套完整的代码集——GBK,GBK向后兼容GB2312,向上支持国际ISO标准,收录了21003个字符,支持了所有中日韩汉字。
GB2312和GBK都是比较完整的代码集,只是本地化的代码,在中国使用没有问题,但跨国使用有问题。例如,一个中国人开发了一个网站,一个外国朋友访问了这个网站,如果他们没有在本地安装GB2312代码集或GBK代码集,那么他们访问网站主页时会看到的是杂乱的。(阿尔伯特爱因斯坦,Northern Exposure)因此,需要全球统一的编码规范。
unicode(unicode)
为了统一所有文本的编码,unicode应运而生。unicode是一种全局字符集,它定义了一组可以表示世界上所有字符和字符的世界通用符号。unicode将所有语言合并到一套代码中,使其不再存在混乱的问题。
我们常用的UTF-8是以字节为单位编码unicode的编码规则之一,通常建议在编写代码时使用UTF-8编码。中文Windows操作系统默认使用GBK编码,因此使用IDE编程时通常需要设置为UTF-8编码。