人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么?
为什么计算机里我们最终要选择二进制呢?
来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二进制。
1 怎么做到“千里传书”
马拉松的故事相信你听说过。公元前490年,在雅典附近的马拉松海边,发生了波斯和希腊之间的希波战争。雅典和斯巴达领导的希腊联军胜利之后,雅典飞毛腿菲迪皮德斯跑了历史上第一个马拉松,回雅典报喜。这个时候,人们在远距离报信的时候,采用的是派人跑腿,传口信或者送信的方式。
但是,这样靠人传口信或者送信的方式,实在是太慢了
在军事用途中,信息能否更早更准确地传递出去经常是事关成败的大事
所以我们看到中国古代的军队有“击鼓进军”和“鸣金收兵”,通过打鼓和敲钲发出不同的声音,来传递军队的号令。
如果我们把军队当成一台计算机,那“金”和“鼓”就是这台计算机的“1”和“0”
我们可以通过不同的编码方式,来指挥这支军队前进、后退、转向、追击等等。
“金”和“鼓”比起跑腿传口信,固然效率更高了,但是能够传递的范围还是非常有限,超出个几公里恐怕就听不见了。于是,人们发明了更多能够往更远距离传信的方式,比如海上的灯塔、长城上的烽火台。因为光速比声速更快,传的距离也可以更远。
亚历山大港外的法罗斯灯塔,位列世界七大奇迹之一,可惜现在只剩下遗迹了。可见人类社会很早就学会使用类似二进制信号的方式来传输信息
但是,这些传递信息的方式都面临一个问题,就是受限于只有“1”和“0”这两种信号,不能传递太复杂的信息,那电报的发明就解决了这个问题。
从信息编码的角度来说,金、鼓、灯塔、烽火台类似电报的二进制编码
电报传输的信号有两种,一种是短促的点信号(dot信号),一种是长一点的划信号(dash信号)
我们把“点”当成“1”,把“划”当成“0”。这样一来,我们的电报信号就是另一种特殊的二进制编码了
电影里最常见的电报信号是“SOS”,这个信号表示出来就是 “点点点划划划点点点”。
比起灯塔和烽火台这样的设备,电报信号有两个明显的优势
信号的传输距离迅速增加
电报本质上是通过电信号来进行传播的,所以从输入信号到输出信号基本上没有延时
输入信号的速度加快了很多
电报机只有一个按钮,按下就是输入信号,按的时间短一点,就是发出了一个“点”信号
按的时间长一些,就是一个“划”信号
一个手指,就能快速发送电报。
一个摩尔斯电码的电报机
制造一台电报机也非常容易
电报机本质上就是一个“蜂鸣器+长长的电线+按钮开关”
蜂鸣器装在接收方手里,开关留在发送方手里。双方用长长的电线连在一起。当按钮开关按下的时候,电线的电路接通了,蜂鸣器就会响。短促地按下,就是一个短促的点信号;按的时间稍微长一些,就是一个稍长的划信号。
有了电池开关和铃铛,你就有了最简单的摩尔斯电码发报机