大家好,这里是链客区块链技术问答社区,今天讲一讲如何理解计算机知识,以及计算机的发展史。也感谢大家的关注~
计算机是标准的理工科而不是文科,所以你要了解的不是它的历史,而是它最最基本的核心概念,以及后续的概念是如何由此逐步建立起来的评论有人提出了类似的疑问,希望了解到底计算机是如何发展成这样的,所以我编辑一下答案提供个大概的框架在我看来,想充分的解答这个问题,需要的是份详细的CS「本科阶段的课程踣线,而不是简单的三言两语的科普就能解决的,所以我只能提供一个总体的方向性的东西。
一、最初也是最基本的东西:二进制要了解现代计算机的架构就必须知道二进制。只所以是二进制而不是其他的进制,是因为在电子计算机中,开或关,通或断,高或低,都是二分式的表达方式。对于电路来说,这是最容易表达的状态。我们以最简单的开关为例,在一个并联电路中,每条支路都由一个开关控制,开关闭合则电路通电,断开则电路断电。所以我们可以描述,对每条支路,在特定的某个时间点,都有开或关两种状态,用简单的数字描述就可以写成1(通路)或0(断路),这就是二进制的基本来源。
二、尔代数既然提到了二分法,那么很显然,真或假( rue or false也是种二分的表达方式,所以我们当然也可以用1和0来表示一个条件(或者说命题)的真或假。在遇到多个条件组合的时候,也就自然地会引入布尔代数。
来考虑这样一种情况一个线路由2个开关A和B同时控制,按照之前的描述,只有在A和B同时闭合的时候,电路才是通路状态,也就是灯泡才会亮起。如果用Sa表示开关A的状态,Sb表示开关B的状态,而SL表示灯泡L的状态,那么我们可以说只有A与B同时处于通路(即数字1)的时候,L才能处于通路(1)的状态,否则处于断路(即0)的状态。这种状态我们描述为“与”(And),即,A与B同时成立。用数学的描述可以写成SL=Sa×Sb那么我们可以引入一个概念,叫做真值表,用来描述时,L应处的状态。
与运算来说,真值表是这样自可以看到,只有A与B同时为1时,L才是1,否则就是0有了与,我们当然还要有另一种情况,就是或。
可以看到,A和B只要有任意一个是通路,L就会亮起来(1),所以叫做只要A或B任意一个处于通路时,L就处于通路状态。只有A和B同时断路时,L才会断我就不写了除了与和或,我们还有异或和非两个重要状态。异或的描述是:当A和B状态相同时,L是断开的,否则L就是通路的。非的描述是:当A断开时,L就是通路的,反之L则是断开
三、 二进制加法进算有了数学基础,我们就可以以此来构建基本的数学运算基于十进制的,但是数学原理告诉我们,只影响数字的表达方式。也就是说,不管我们用什么样的进制进行计算,最后算出来的结果都是一样的,区别只在于我们把他们写成什么形式。所谓的十进制,也就是逢10进位。什么意思呢?就是说十进制里面,对于单个数字位(个位、十位、百位)来说,只有0-9这些数字,不存在大于9的。一旦数字超过9(逢10了),就要向高一位进位那么二进制也是同样的原理,对于单个数字位来说,逢2进位,也就是不存在大于1的,换而言之就是只有0和1两种情况于是我们就有在二进制下的运算如:(1)2+(1)2=(10)2101)2+(10)2=(111(110)2+(101)2=(1011)2有了加法,自然就有减法乘法除法乘方开方等等,不再详述对于计算机来说,所有的运算都是用这种方法进行的。
四。计算机运行原理
对于计算机来说,我们知道如何计算还不够,还需要知道它是如何运行。
对于计算机来说,其基本的核心是包括指令及数据两部分
所谓的指令,其实本质上也是一组预先规定好的动作,也就是所谓的状态机,用通俗一点的方法来
讲,就是例如
如果指令是A,且当前状态是S(1),那么就执行动作W(1),并且把状态设置为S(2
如果指令是B,且当前状态是S(1),那么就执行动作W2),并且把状态设置为S(2
如果指令是A,且当前状态是S(2),那么就执行动作W(3),并且把状态设置为S(1)°
如果指令是B,且当前状态是S(2),那么就执行动作W4,并且把状态设置为S(1)
如此类型的,一组预设好的动作方案。当前状态则是指计算机当时所处的状态。当然实际的情况会比这复杂的万变不离其宗。
举报/反馈