打字猴:1.70041296e+09
1700412960
1700412961
1700412962 计算机是怎样跑起来的 [:1700412612]
1700412963 计算机是怎样跑起来的 1.2 输入、运算、输出是硬件的基础
1700412964
1700412965 首先从硬件的基础开始介绍。从硬件上来看,可以说计算机是执行输入、运算、输出三种操作的机器。计算机的硬件由大量的IC(Integrated Circuit,集成电路)组成(如图1.1所示)。
1700412966
1700412967 图1.1 IC的引脚有些用于输入,有些用于输出
1700412968
1700412969
1700412970
1700412971
1700412972 每块IC上都带有许多引脚,这些引脚有的用于输入,有的用于输出。IC会在内部对外部输入的信息进行运算,并把运算结果输出到外部。运算这个词听起来也许有些难以理解,但实际上就是计算的意思。计算机所做的事就是“输入”数据1和2,然后对它们执行“运算”,最后“输出”计算结果
1700412973
1700412974 在观察银行在线系统这类巨型系统时,或是编写复杂的程序时,也要时常把输入、运算、输出这三者想成一套流程,这一点很重要。其实计算机就是一台简单的机器,因为它只能做这三件事–输入、运算、输出
1700412975
1700412976 “你说的不对,计算机能做的事远比这些多得多!”也许会有人这样反驳。的确,计算机可以做各种各样的事,比如玩游戏、处理文字、核算报表、绘图、收发电子邮件、浏览网页等等,但无论是多么复杂的功能,都是通过组合一个又一个由输入、运算、输出构成的流程单位来实现的,这是毋庸置疑的事实。如果打算用计算机做点什么的话,就要考虑如何进行输入、进行怎样的运算才能从输入得到输入肮脏如何获取输出。
1700412977
1700412978 输入、运算、输出三者必须成套出现,缺一不可。这样说的原因有几点。首先,现在的计算机还没有发展到能通过自发思考创造出信息的地步。因此不输入信息,计算机就不能工作。所以,输入是必不可少的;其次,计算机不可能不执行任何运算。如果只是使输入的信息绕过运算环节直接输出,那么就是电线而不是计算机了。可以说不进行运算,计算机也就没有存在的意义。最后,输入的信息如果经过了运算,那么运算结果就必然要输出,如果不输出结果,那么这也不是计算机而只是堆积信息的垃圾箱了。因此,输出也必不可少。
1700412979
1700412980 图1.2 计算机只会输入、运算、输出
1700412981
1700412982
1700412983
1700412984
1700412985
1700412986
1700412987
1700412988 计算机是怎样跑起来的 [:1700412613]
1700412989 计算机是怎样跑起来的 1.3 软件是指令和数据的集合
1700412990
1700412991 程序是软件的基础。所谓程序,其实非常简单,只不过是指令和数据的集合。无论程序多么高深、多么复杂,其内容也都是指令和数据。所谓指令,就是控制计算机进行输入、运算、输出的命令。把向计算机发出的指令一条条列出来,就得到了程序。这里成套出现的输入、运算、输出就是之前在硬件的基础一节中说明过的流程。向计算机发出的指令与计算机硬件上的行为一一对应是理所当然的。
1700412992
1700412993 在程序设计中,会为一组指令赋予一个名字,称之为“函数”、“语句”、“方法”、“子例程”、“子程序”等。这里说些题外话,在计算机行业,明明是同一个东西,却可以用各种各样的术语来指代它,请注意这种现象,如果只想用一个名字的话,一般情况下笔者推荐称之为函数,因为这个名字通俗易懂。
1700412994
1700412995 程序中的数据分为两类,一类是作为指令执行对象的输入数据;一类是从指令的执行结果得到的输出数据。在编程时程序员会为数据赋予名字,称其为“变量”。看到变量和函数,诸位也许会联想到数学吧。正如数学中函数的表记方法那样,在很多编程语言中都使用类似下面的这种语法:
1700412996
1700412997 y=f(x)
1700412998
1700412999 这句话表示若把变量x输入到函数f中,经过函数内部的某种运算后,其结果就会输出到变量y中。因为计算机是先把所有信息都表示成数字后才对其进行运算的,所以编程语言的语法类似数学算式也就不足为奇了。但在程序中有一点与数学不同的是,变量和函数的名字都可以由一个以上的字符构成,比如下面这种情况
1700413000
1700413001 output=operate(input)
1700413002
1700413003 也就是说,使用由多个字符构成的长名字也是可以的,甚至可以说写成这样的情况更加普遍。
1700413004
1700413005 下面举一个例子作为证据来证明程序是指令和数据的集合。请看代码清单1.1
1700413006
1700413007 代码清单1.1 C语言的程序示例片段
1700413008
1700413009 int a, b, c;
[ 上一页 ]  [ :1.70041296e+09 ]  [ 下一页 ]