计算机/电脑为什么拥有计算能力

所谓的计算能力,无非是根据设计好的规则进行一定的计算而已。在电气之气,巴比奇的差分机就根据机械原理可以进行简单的计算(理论上)。但建立在电路基础上的计算机更方便而已。

作者:门外的人
链接:https://www.zhihu.com/question/49255377/answer/115080487
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

首先,要有电。(别告诉我你不知道电是怎么来的)

其次,你要设计个电路,电路里要有个元件,有“高电平”和“低电平”两种状态(你可以理解为有电—1,和没电—0 两种状态)。这个状态可以保持,也可以改变。

然后,你要把这个电路变复杂,变成三个元件abc,这个电路的功能是:如果ab同时为1,则c为1;若ab中至少有一个0,则c为0。这样你就得到了计算机的细胞:一个“与”电路。类似的原理,你还能得到一个“或”电路(ab只要有一个1,c就为1,否则为0),还有一个“非”电路(“非”只需ab两个元件,b只要和a状态相反就行)

再然后,你就可以把这些与或非电路组合起来,这样你就有了一大堆可以操控的0和1。你这时可以规定,0000表示十进制0,0010表示十进制2等等,000000表示字母A,111111表示字母B等等,总之你现在可以用0和1表示一切了

接下来,你可以用这些电路来暂时存储0和1,这样你就有了内存;你可以用大量的与或非电路做更复杂的加减乘除计算,这样你就有了CPU;你可以用电线把内存和CPU连起来,这样你就有了总线。如果你有一大堆发光二极管(0-灭,1-亮),你甚至可以做出一个屏幕。

好了,把这些东西放在一起,做个漂亮的外壳,你终于拥有了一台属于自己的计算器!

什么?你问的是计算机?


好吧

计算机和计算器之间只差了一个字吗?

如果你这么想的话,就too naive了。。。

它们之间还差了寄存器、控制器、微体系结构、指令集、输入输出设备、网卡、网络协议、操作系统、编程语言、容错技术、并行技术、系统软件…… 当然我只列举了一部分,而且这部分我也不知道怎么实现(摊手)

还真是不可思议的破铜烂铁呢(≧∇≦)

--------- 更新 ---------
有些人觉得计算机的核心在于二进制,个人觉得并不是,用二进制是因为实在没有别的选择了。
人类用电做计算,电路元件只有两种稳定的离散状态,所以才有了0和1。
想一想,如果有天发现某种元件(注意这种元件必须是可连接和可组合的),它有10种稳定的离散状态呢?那不就可以直接实现十进制计算机了嘛?
当然,十进制计算机可能会比二进制计算机更复杂,也有可能更高效(前提是不考虑材料本身导致的通信延迟)。

对于我来说,计算机的核心思想在于,把一堆简单的单元组合在一起,经过分化和复合,实现复杂的功能

作者:门外的人
链接:https://www.zhihu.com/question/49255377/answer/115080487
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

首先,要有电。(别告诉我你不知道电是怎么来的)

其次,你要设计个电路,电路里要有个元件,有“高电平”和“低电平”两种状态(你可以理解为有电—1,和没电—0 两种状态)。这个状态可以保持,也可以改变。

然后,你要把这个电路变复杂,变成三个元件abc,这个电路的功能是:如果ab同时为1,则c为1;若ab中至少有一个0,则c为0。这样你就得到了计算机的细胞:一个“与”电路。类似的原理,你还能得到一个“或”电路(ab只要有一个1,c就为1,否则为0),还有一个“非”电路(“非”只需ab两个元件,b只要和a状态相反就行)

再然后,你就可以把这些与或非电路组合起来,这样你就有了一大堆可以操控的0和1。你这时可以规定,0000表示十进制0,0010表示十进制2等等,000000表示字母A,111111表示字母B等等,总之你现在可以用0和1表示一切了

接下来,你可以用这些电路来暂时存储0和1,这样你就有了内存;你可以用大量的与或非电路做更复杂的加减乘除计算,这样你就有了CPU;你可以用电线把内存和CPU连起来,这样你就有了总线。如果你有一大堆发光二极管(0-灭,1-亮),你甚至可以做出一个屏幕。

好了,把这些东西放在一起,做个漂亮的外壳,你终于拥有了一台属于自己的计算器!

什么?你问的是计算机?


好吧

计算机和计算器之间只差了一个字吗?

如果你这么想的话,就too naive了。。。

它们之间还差了寄存器、控制器、微体系结构、指令集、输入输出设备、网卡、网络协议、操作系统、编程语言、容错技术、并行技术、系统软件…… 当然我只列举了一部分,而且这部分我也不知道怎么实现(摊手)

还真是不可思议的破铜烂铁呢(≧∇≦)

--------- 更新 ---------
有些人觉得计算机的核心在于二进制,个人觉得并不是,用二进制是因为实在没有别的选择了。
人类用电做计算,电路元件只有两种稳定的离散状态,所以才有了0和1。
想一想,如果有天发现某种元件(注意这种元件必须是可连接和可组合的),它有10种稳定的离散状态呢?那不就可以直接实现十进制计算机了嘛?
当然,十进制计算机可能会比二进制计算机更复杂,也有可能更高效(前提是不考虑材料本身导致的通信延迟)。

对于我来说,计算机的核心思想在于,把一堆简单的单元组合在一起,经过分化和复合,实现复杂的功能

猜你喜欢

转载自blog.csdn.net/andrewniu/article/details/80506854