为什么计算机要采用二进制?
4/100
现在我们都知道计算机采用的是二进制进行数的表示和计算的,但是当时在设计计算机的时候为什么偏偏选择二进制,选择十进制不是更符合人们的阅读和使用习惯吗?
这个问题今天看到了一个合理的解释,但是给出这个解释之前,需要先了解一下“图灵机“
图灵机
图灵机是图灵在一篇讨论"什么是可计算的"的论文中提出的一个模型. 这个模型包含几个部分:
- 一个存储装置:一条无限延伸的纸带,被划分为N个格子,每个格子可以存储字母或数字。

2. 一个修改装置:他自身拥有一个存储自身状态(有限个)的存储器。(比如上图中的q1就是一种状态)并且可以:
- 读取/修改存储装置(那条无限的纸带)上的数据
- 沿着存储装置向左或向右移动
- 能够接受一个外部程序(外部指令)
这里有一个依据理论模型实现的机器视频:
如果采用十进制会怎么样
注意到修改装置是由一个能够接受外部指令或外部程序的地方。假如我们设计一个使用十进制的计算机,那么存储装置,也就是那条无限长的纸带上的每个格子就可以有10种情况(0~9),假定修改装置自身拥有3种状态(q1,q2,q3)。
现在我们需要向图灵机输入外部程序,这个外程序应该满足或涵盖在当前条件下(10种数字和3种状态)的所有情况。
如果我们用一行指令或代码来表示一种情况,要涵盖上述所有情况则需要\( 10*3=30\)行代码。
如果我们采用二进制,那代码行数只需要\(2*3=6\)行代码就可以实现。
结论
所以如果采用十进制,代码或指令的数量是采用二进制的好几倍。也有人计算过最合适的进制应该是欧拉常数\(e,e\approx 2.718281828...\) 最接近的正整数是3,但是3进制在电路实现上并不容易,所以最终选择了二进制。
有趣的资料:
Member discussion