上一节我们了解了曲线的矩形逼近,以及由此代表的模拟量的数位表示。基于以上知识, 这节课我们可以开始学习二进制了。
计算机原理之
二进制对数值的数位表示,我们可以很自然的想起十进制。即所有的数字都用10个基本的符号表示,基本符号是0到9十个数字,满十进一。
十进制是不是适合计算机的数位表示了?让我们回顾下十进制产生的历史根源。
人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个解剖学事实的结果。再回顾下第一节中的珠算的例子。珠算之所以采用十进制,是因为它表示每个表示数位的杆子上都串有十个珠子。
也就是说, 我们采用十进制, 是因为我们有十个物理实体可以分别对应十个物理状态(如人有十个手指,珠算每个杆子上有10个珠子)。这十个物理状态的变化就代表了数值的变化。
如果计算机的某个物理特性可以有十个很容易确定,并且很容易互相转化的状态, 计算机就可以采用和我们一样的十进制。但是, 我们并没有找到包含10个稳定的, 容易区分,且可以快速转化的状态的物理特性。
在计算机科学的早期阶段,计算机科学家花了大量的努力来确定适合于计算机的数位表示。最终数学家莱布尼兹从中国的《易经》中受到八卦图的启发, 引入二进制做为计算机的数位表示。
二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。莱布尼兹引入二进制后, 计算机科学家立刻就发现计算机采用二进制是如此的理所应当、显而易见。
我们现在所说的计算机全称是电子计算机。电子计算机的底层结构是各种各样的电路结构。最基本的电路结构就是开关。通过开关的打开闭合, 我们可以使电路通电或者断电。这样, 我们就有了对应于二进制所需的两种物理状态(通电或断电)。这两种状态可以很容易的区分(通过测量电压或电流就可以得出)并且可以快速转化(通过打开或关闭电源)。更神奇的是, 开关可以很容易的被蚀刻在半导体上,形成超大规模集成电路, 从而形成面积很小、功耗很低的电子计算机芯片。
二进制与电子计算机是天作之合。尽管在计算机发展的早期, 也发展过其他进制。如前苏联的三进制计算机。但最终, 只有基于二进制的电子计算机迎来了大规模的发展。
现在, 不是基于二进制逻辑电路的非传统电子计算机开始出现。如采用量子比特存储和记忆数据的量子计算机。量子必特的稳定状态可能多于两种, 因此量子计算机可能会采用不同于二进制的新的数位表示。