|
LV10
站长
这一节实际上是对【ASCALL编码】 的进一步解释,加深大家的理解
先复习知识点:018: 【计算机与2进制】
上面说了第一台计算机于1946年2月在美国诞生,既然2进制可以用来计算,那能不能用来存储数据呢,这是一个非常伟大的想法,于是有人提出了一个非常NB的思路,将2进制转换成10进制,然后将10进制结果编成一个表
例子:
2进制的0=10进制0,我们表达一个字符
2进制的1=10进制1,我们表达一个字符
2进制的10=10进制3,我们表达一个字符
2进制的11=10进制4,我们表达一个字符
如果听不懂,那就再复习一下:004: 【进制的理解】
——————————————————————————————
因为这个想法最初是由外国人提出来的,他们讲英文,26个大写字符+26个小写字符+一些常用标点符号大概有70多个,那么2进制的长度需要多少,2^6=64,6个长度位置的2进制不太够用,因此7个长度的2进制就比较合理了,这句话很多人可能听不懂,那我们来说一个数学问题
例子:
□□□□ □□□
这里有7个格子,每个格子可以写0和1,那么一共有多少种写法,答案就是2^7=128种
最大值是1111 111,换算成10进制就是127
最小值是0000 000,换算成10进制就是0
一共128个,你不想计算可以百度搜索进制计算器
每个方格大家就理解成一个开关,所以这7个开关表达了128种线路情况,每一种情况对应的2进制转换成10进制后进行编码,就是ascall码
下图是ascall表,控制字符的意思就是表示那个字符
因此一个ascall码(7个2进制)就可以表达一个7符,那么存储aa就使用2个ascall码(14位)即可
但是,人们很快发现,不能只存储英文,还应该存储其他国家的文字,于是有人提出,那我们可以使用2个ascall码来表达一个其他国家的字符,然后重新编个表,但是这存在一个问题,假设97,97到底是表示一个其他国家的字符还是表示aa(2个字符)?因此,只能在原来7位置的基础上增加一个位置
□□□□ □□□□
8个格子可以表达多少种可能性:2^8=256种,同时让其他国家地区的文字使用129-255的编码去配合表示,129-255这个范围的单个ascall码也不代表任何字符
后来将一个ascall码称为1个字节,所以网上经常说的1个字节=8位大家知道是什么意思了吧
(点击返回课程目录:https://shuxiangyage.net/forum.php?mod=viewthread&tid=1134)
|
|