打字猴:1.700412972e+09
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;
1700413010
1700413011 a=10;
1700413012
1700413013 b=20;
1700413014
1700413015 c=Average(a,b);
1700413016
1700413017 这里列出了一段用名为C语言的编程语言编写的程序。C语言中要在每条指令的末尾写一个分号(;)。第一行的“int a, b, c;”表示接下来要使用名为a,b,c的整数变量,其中int是integer(整数)的缩写,用于告诉计算机“要用的是整数”。下一行的“a=10”表示把整数10赋值给变量a,同样的,“b=20”表示把整数20赋值给变量b。等号是赋值给变量的指令。再来看看最后一行的“c=Average(a,b);”表示把变量a和b传给函数的参数,并将运算结果赋值给变量c,其中使用一个名为Average的函数,它的作用是返回两个参数的平均值。通过上面的例子,应该能够明白程序只是由指令和数据构成的
1700413018
1700413019 虽然程序就是这样,但那些稍微有些编程经验的人也许会说:代码清单1.1所示的程序逻辑简单,而真正的程序是使用了各种各样的语法,更复杂的东西,绝不是用指令和数据的集合就能解释清楚的。其实并不是像他们想的那样,无论多么复杂的程序,都只不过是指令和数据的集合。下面再看一个证据
1700413020
1700413021 在一般的编程过程中,程序经过编码后才能执行。所谓编译就是把用C语言等编程语言编写的文件(源文件)转换成用机器语言(原生代码)文件。假设先把代码清单1.1中的代码保存到文件MyProg.c中,然后经过编译就可以生成可执行的程序文件MyProg.exe了。接下来使用能查看文件内容的工具查看MyProg.exe,其内容应该与代码清单1.2类似。
[ 上一页 ]  [ :1.700412972e+09 ]  [ 下一页 ]