YongSir

专业程序员伪装者

小朋友的编程二

一切都是数字和电路

我们上一次大致对电脑以及编程的概念有了一些了解,编程就像是跟机器说话,告诉机器按照我们设计的流程去完成工作,而电脑 = 电子元件 + 程序 = 硬件 + 软件。 这一节就在具体说说为什么电脑除了需要硬件之外还需要软件。

这还得从电路开始说起,我跟你提到过电路可以分为2类。一种叫数字电路,它出现的比较晚是个小弟,它的大哥是一个叫模拟电路的家伙,这家伙从人类认识和使用电以来,基本都是它,比如作为能源供应驱动电机,灯泡等等。

我还提到过,电不光是一种能量,还可以是一种信息,所以模拟电路和数字电路的区别,最根本的来说就是2者电路中的信号不一样,一个电路板如果它里面的信号是数字信号,那它就是数字电路,否则就是模拟电路。

简单的来说,随处可见的自然信号都模拟信号,比如声音信号,灯光等等,模拟信号的特点就是在时间上和取值上都是连续的不间断的,如果在你学过的数轴上,随意画出来就是一条连续不间断的曲线,就是一个典型而自然的模拟信号。

数字信号就不一样了,在时间上和取值上都是不连续的。这些说起来有些难以理解,但是通过图就看出来的:

这是很简单的图,还有更复杂一些的,你能不能判断那些是模拟的那些是数字的呢?

其实关键就是看信号图是否连续,如果没有间断那就是模拟的,如果是一个一个柱子一样的东西那就是数字的。

既然模拟信号又自然应用的又早,那为什么现在主流都是数字信号呢?

其实,再上图中你就能猜出一些,原因很多,但最关键的是数字信号简单,规律性强,简单就意味着用电量少,有规律就意味着处理很传输方便,所以数字电路可以做到很小很强,我们接着图:


上图左侧是早期的计算机,硬件主要都是模拟电路,而右侧你就很熟悉了,就是普通的家用电脑,前者有几个屋子大小而后者桌上就能放,相对于体积差异它们的功能强弱才是更让人惊奇的,后者计算能力比前者要强好几百万倍都不止,即便你的手机的处理能力,也要比屋子一样的老电脑强很多很多。这就是为什么现在数字电路被广泛的使用在各个领域,电脑就是其中最典型的存在。


了解了这些之后,我们再回到主题,电脑 = 硬件 + 软件,其中硬件指的是数字电路,那么软件呢?

其实还是好回到数字也是信息的那个例子,回顾一下吧:
比如我给定一个标准电压5v,如果比5小的电压我们称之为低电压,我们用0表示,比它高就是高电压,我们用1表示。同时我们还规定,如果高电压就代表天气晴朗适合出门玩,低电压为雨天不能出门,文字描述对应到表格就是:

大于5V 1 天气晴朗
小于5V 0 阴雨天气

那么如果给出的是1,你一看自然就知道了:噢,今天天清气朗,是可以出去游玩,0的话就正好相反。上述就通过把电压转化成了数字信号0或1(这一步是硬件在发挥作用),从而来0表示阴雨并让1表示晴天(这个规定谁代表谁就属于软件的工作),他们共同作用就完成了表示天气的好坏的功能。

让我们在扩展一下,如果科学家发现了一种材料,它做成的电路能根据天气的好坏而发生变化,雨天低于5v,晴天就高于5v,这时候我们把这种材料做的电路放到院子里,你只用在屏幕前去看显示0或者1,就知道了天气,不用自己出去看,并且整个过程是自动化的,也就是说一旦已你第一次布置好了之后,就再也不用去干预了,你就拥有了一个能自动告诉你天气的智能设备了。

这就是软件+硬件之所以厉害的原因,它们配合起来就是自动的,智能的。

看起来也不是太难,是吧

总结一下,通过这篇文章,你对软件和硬件多了解了一些:

  • 电脑里的硬件基本都是数字电路,它们可以处理数字信号
  • 数字信号不是0就是1,电脑中的一切本质上都是0和1,不管是图片视屏还是游戏
  • 软件的作用就是为了支持和解释硬件的,它规定01代表了什么

这还是一篇概念性的材料,看过有个印象就行了,能了解到电脑中的一切都是0101很重要,因为它就是电脑工作的基本机制。预告一下:下周,我们就要开始试试最简单的编程了。