因为电流的产生,人们发现了电磁现象,利用电磁现象发明电报机,实现了人们远距离(眼睛看不到和耳朵听不到的距离)的通信。语言就是编码的一种,在同一个国家用大家熟悉的语言交流是没有问题的,因为交流使用的语言是大家熟知的编码。
萨缪尔.摩尔斯发明了电报机和电码,也就是人们熟知的“摩尔斯电码” 点和划。而我们现在的计算机用的二进制编码。
二进制编码是怎么来的?
先看一下十进制数。数字是我们日常生活中最抽象的一种编码。那为什么是10?因为人们最初的计数是用自己的手指,这些手指用10这个标记来表示而已。如果人们的手指是8或者12,那我们现在的计数系统应该就不一样了。所以,人们用10进制数系统,以10为基数完全是随意的。
十进制数是以为基础数0,1,2,3,4,5,6,7,8,9来表示,每一个位置又代表10的一个整次幂。
比如
<3451 = 3*1000 + 4*100 + 5*10 + 1= 3 *10^3 + 4*10^2 + 5 * 10^1 + 1*10^0>
理解各种进制,"10"是一个关键点,为了容易理解,我们不念十 ,念 一零。
十进制: 基础数字是0,1,2,3,4,5,6,7,8,9 ; 9的下一位开始进位 变成 一零;
0,1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30
31,32,33,34,35,36,37,38,39,40
41,42,43,44,45,46,47,48,49,50
51,52,53,54,55,56,57,58,59,60
61,62,63,64,64,66,67,68,69,70
71,72,73,74,75,76,77,78,79,80
81,82,83,84,85,86,87,88,89,90
91,92,93,94,95,96,97,98,99,100
八进制: 基础数字是0,1,2,3,4,5,6,7 ; 逢 8 进位 变成 一零;
0,1,2,3,4,5,6,7,10
11,12,13,14,15,16,17,20
21,22,23,24,25,26,27,30
31,32,33,34,35,36,37,40
41,42,43,44,45,46,47,50
51,52,53,54,55,56,57,60
61,62,63,64,64,66,67,70
71,72,73,74,75,76,77,100
二进制:基础数是0,1 ;逢2进位变成一零;
0 ,1,10
11,100
101,110
111,1000
1001,1010
1011,1100
1101,1110
总的来说,十进制,八进制,还是其他进制都是一种计数系统,都可以参与运算,都能表达信息,本质上没什么不同。
计算机为什么要用二进制数,而不是其他进制数、字母?
1.所有可以被转换成两种或多种可能性选择的信息,都可以用二进制表示
计算机的最小信息量单位是bit,1bit正好是2位二进制数,复杂的信息可以用多位二进制表示。
也就是说,能用语言、声音、图像来表示的事物,都能用bit的形式来编码。
2.我们可以清楚地知道我们是否已经想到了所有情况
比如同样是两位数,分别是10进制,8进制 2进制
十进制的两位数有多少种可能?
个位是10种可能(0-9),十位也是10种可能(0-9),根据笛卡尔基计算这个两位数的可能情况是10*10=100种情况。
八进制的两位数有多少中可能?
个位是8种可能(0-7),十是8种可能(0-7),组成八进制的两位数可能情况是8*8=64种
二进制呢?
个位是2种可能(0,1),十位是两种可能(0,2),组成两位数是4种可能。信息是多种可能性中的一种,而二进制最简单的计数系统,只有两个数0,1. 当我们交流的双方确定好1代表什么,0代表什么,之后就可以正常交流。
人类的感情存在【爱】,【有点喜欢】,【有点爱】,【不爱】这种可能性,但是计算机不行,必须是爱或者不爱,喜欢或者不喜欢。所以,二进制保证了计算机可传递最小信息的同时,确保传递信息的准确性。
**3.硬件决定
计算机内部是有IC集成电路这种电子部件构成。CPU和内存也都是IC的一种。IC有集中不同的形状,有的像一条黑色蜈蚣,在其两侧有数个乃至数百个引脚;IC的所有引脚,只有直流电压0V或5V两个状态,也就是说,IC的一个引脚只能表示两个状态。IC的这个特性,决定了计算机的信息数据只能用二进制来处理。
第三个理由来自于《程序是怎样跑起来的》,我觉得正式因为1,2的原因,才让硬件设计时,遵循了二进制的规则。所以,计算机采用二进制的主要原因还是因为二进制极致简单、根据增加位数来表达更多信息。