为什么计算机用二进制—(计算机基础课八)
上一篇:硅谷的由来—(计算机基础课七)
这周布尔逻辑和逻辑门内容,很重要,请细细品味。
今天我们开始"抽象"的旅程,不用管底层细节,把精力用来构建更复杂的系统。上一节,我们谈了计算机最早是机电设备,一般用十进制计数,比如用齿轮数来代表十进制, 再到晶体管计算机。
原因一
幸运的是,只用 开/关 两种状态也可以代表信息,这叫二进制。意思是"用两种状态表示",就像自行车有两个轮,双足动物有两条腿,你可能觉得两种状态不多,你是对的!但如果只需要表示 true 和 false,两个值就够了。
电路闭合,电流流过,代表 "真",电路断开,无电流流过,代表"假",二进制也可以写成 1 和 0 而不是 true 和 false, 只是不同的表达方式罢了。我们下一节会讲更多细节
晶体管的确可以不只是 开/关,还可以让不同大小的电流通过,一些早期电子计算机是三进制的,有 3 种状态,甚至五进制,5 种状态。问题是,状态越多,越难区分信号,如果手机快没电了或者附近有电噪音因为有人在用微波炉,信号可能会混在一起...而每秒百万次变化的晶体管会让这个问题变得更糟!所以我们把两种信号尽可能分开,只用"开"和"关"两种状态,可以尽可能减少这类问题。
原因二
计算机用二进制的另一个原因是,有一整个数学分支存在,专门处理"真"和"假",它已经解决了所有法则和运算叫"布尔代数"!乔治·布尔(George Boole)是布尔二字的由来,是一位 19 世纪自学成才的英国数学家,他有兴趣用数学式子 扩展亚里士多德基于哲学的逻辑方法,布尔用 逻辑方程 系统而正式的证明真理,他在 1847 年的第一本书"逻辑的数学分析"中介绍过。
在"常规"代数里,你在高中学的那种,变量的值是数字,可以进行加法或乘法之类的操作。但在布尔代数中,变量的值是 true 和 false,能进行逻辑操作。
布尔代数中有三个基本操作:NOT, AND 和 OR。
这些操作非常有用,我们明天将一个个来看。