编码的本质及计算机的工作原理( 三 )



编码的本质及计算机的工作原理
文章图片

文章图片

可以看到 , 二进制数字只有0 , 1两个数位 , 做加法时 , 满二进一 。无论是十进制编码 , 还是二进制编码 , 他们都是等效的 。实际上 , 还可以编码为三进制、四进制、...、十五进制、十六进制、十七进制等其他进制 , 本质思路是一样 , 相同的玩法 。五. 二进制的发展由来众所周知 , 现代计算机采用的是二进制逻辑 , 但是 , 为什么计算机要采用如此反人性的二进制呢?我们来慢慢说 , 往下看 。先来看“14个苹果”加“38个苹果”这件看似简单的事情 ,我们该怎样用电路来完成计算呢?思路是编码后再计算 , 然后解码 。
首先 , 需要把苹果编码成具体数字 , 即14和38这两个值 。然后 , 需要把14和18编码成14v和18v, 即用电压表示数 。最后 , 把结果52v解码理解成数字52 , 即为“52个苹果” 。先来看看 , 用电来表示数 , 并实现加法 , 以14加38为例 , 输入14v的电压和38v的电压 , 设计电路 , 实现电压相加 , 得到52v , 完全可以 。可如果是9999加8888呢?用9999v和8888v的电压?估计早就被烧糊了 , 器毁人亡 。

编码的本质及计算机的工作原理
文章图片

文章图片

我们来改进设计方案 , 下面这个设计就靠谱很多了 , 一根电线上的最低电压是0v, 最高电压是9v, 不至于把器件烧毁 , 人也安全 。下面这个十进制加法器 , 貌似很完美了 。事实上 , 最初 , 人们造计算机的时候 , 用的就是十进制 。

编码的本质及计算机的工作原理
文章图片

文章图片

可是 , 现在有三个必须要面对和解决的问题:
怎么实现4v+8v=12v呢?把两个电压串联起来 , 结果不就是电压之和吗?可是 , 这毕竟不是两个电池啊 , 貌似不太好串联 。想了很久 , 也没找到好办法 。
从0v到9v, 总共有10个电压位 , 由于电子线路器件的复杂性 , 如果一根电线的电压值是7.49v, 那么请问 , 它表示的是数字7还是数字8呢?很尴尬很难办 。如果要去计算14.001加上38.002, 用电路该如何表示呢?如何计算出准确无误的52.003 ? 要知道 , 任何一点电压的波动 , 都可能让最后结果产生偏差 。有没有更好的设计方式呢? 各路先驱 , 苦苦探索 , 最后探索出了解决之道:使用二进制来计算 , 用电路来实现二进制计算 。
用电路来实现二进制表示和二进制计算 , 我们今天看起来似乎很简单 , 但探索出这条路 , 并不容易 , 也是坎坷挺多的哈 。莱布尼茨发明了二进制 , 但他在做乘法器时 , 没意识到二进制的重要性 。终生未婚的他 , 在科学和哲学史上 , 是百科全书 。

编码的本质及计算机的工作原理
文章图片

文章图片

布尔创建了逻辑代数 , 也称布尔代数 , 在很大程度上 ,为后来的电路设计及其简化 , 做出了很大的贡献 。现在很多编程语言中都内部了布尔类型 , 以纪念这位先驱 。1864年 , 在暴风雨中 , 布尔淋湿了 , 还坚持去上课 , 然后肺炎复发 , 一命呜呼了 , 真是可惜啊 。希望大家注意身体 , 生病了 , 要休息 。累了 , 要休息 , 别扛着 。

编码的本质及计算机的工作原理
文章图片