网站首页 > 基础教程 正文
字符编码的发展可以用一句话来形容,就是天下大势,分久必合,合久必分。
由于现代计算机的起源是美国嘛,他们当时根本就没看有考虑过其他国家也能用上电脑,所以他们仅仅是把英文字符,以及键盘上我们看到的那些特殊符号和数字,建立了对应关系。
于是就有了最早的ASCII码表,它的全称是American Standard Code for Information Interchange,翻译过来就是美国信息互换标准代码。
由于这个ASCII码表里面,只有英文字符和数字的对应关系,很简单嘛,当然还有一些特殊符号。
其实也就是一个英文对应一个数字,我说的数字最后都会转成二进制的,后面我就不再强调了。
那如果我们来设计这个ASCII码表的话,我们会用几位二进制数,来对应一个英文字符呢?
如果我们只用一位二进制数的话,一位二进制数只有两种变化,要么是是一,要么是0。它只能对应两个英文字符,如果我用两位二进制数来对应一个英文字符的话,他就有四种变化了,00、01、10、11。
这样就可以对应四个英文字符,但是很明显,两位二进制数也是不够了。现在我们知道,只要我们增加二进制数的位数,能够对应的字符也就越多。
最终这个ASCII码表,它采用了8位二进制数,来对应一个英文字符。为什么是8位呢?其实现在我们键盘上敲出来的符号,包括空格、数字、大小写字母,以及一些括号大于小于等于等等其它的符号,一共也就95个。然后还有33个通用控制符,一共是128个。
这个表我们可以来看一眼。
它从0到31,还有最后一个127,就是对应刚刚我们说的33个通用控制符,这些控制符大多用于控制打印机等外部的设备的,还有一些ESC键、删除键、退格键等等。
然后32是对应的空格,48到57对应10个阿拉伯数字0到9,65到90对应26个大写英文字母,97到122对应26个小写英文字母。其余为一些标点符号、运算符号等等。
0到127嘛,一共是128个。
也就是我们在这里输入个1,它背后帮我们存到内存里的其实是49,对应的二进制数是110001,我们输入小写的z,最后存到内存里的就是122所对应的二进制数1111010。
我们前面讲的字符串比大小,其实也是参照这个表来比的,这个表不用去傻傻的记,了解就行了。
然后我们打开交互式环境cmd算一下,多少二进制数才可以表示0到127,一共128个数。
二的七次方是128,也就是说我们采用七位二进制数就已经能够把所有英文字符以及键盘上所有对应字符对应完了。
那为什么美国人要用8位呢?这其实是为了给后期的扩展留有一些空间,如果以后还想往里面加内容的话,也还有空间可以加。当然后面的空间他们也用了。他们把拉丁文也加到这个表里去了。
这就是字符编码的初期ASCII码表。
猜你喜欢
- 2024-11-18 字符串之反转字符串
- 2024-11-18 三石说:java基础之 基本数类型
- 2024-11-18 2023全国计算机一级考试历年真题节选及答案解析(一)
- 2024-11-18 三菱 PLC的串口通讯案例|RS232
- 2024-11-18 巧用输入法 办公也提效
- 2024-11-18 python数据类型(一):字符串
- 2024-11-18 零基础学C语言——变量、常量与数据类型
- 2024-11-18 计算机的那些事
- 2024-11-18 这篇 Linux 总结的很棒啊
- 2024-11-18 C语言数据的表示
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)