前言
现在的计算机看起来好像是种高度复杂的机器, 可是其基本的构造却简单得令人惊讶。从大约 50 年前 的第一代计算机到现在,计算机并没有发生什么改变。在认识计算机时, 需要把握的最基础的要点只有三个,我们就将这三个要点称为“计算机的三大原则”吧。无论是多么高深、多么难懂的最新技术,都可以对照 着这三大原则来解释说明。 只要了解了计算机的三大原则,就会感到眼前豁然开朗了,计算 机也比以往更加贴近自己了,就连新技术接连不断诞生的原因也明白 了。本书以本章介绍的计算机的三大原则为基础,内容延伸至硬件和 软件、编程、数据库、网络以及计算机系统。在阅读之后的章节时, 也请诸位时常将计算机的三大原则放在心上。
计算机的三个根本性基础
下面就赶紧开始介绍计算机的三大原则吧
。
1. 计算机是执行输入、运算、输出的机器
2. 程序是指令和数据的集合
3. 计算机的处理方式有时与人们的思维习惯不同
计算机是由硬件和软件组成的
。
诸位可以把硬件和软件的区别理
解成游戏机
(
硬件
)
和收录在
CD-ROM
中的游戏
(
软件
)
的区别
。
这样
就能理解硬件和软件各自的基础了
(
三大原则中的第一点和第二点
)。
在此之上
,
计算机有计算机的处理方式也是一条重要的原则
。
而
且请诸位注意
,
计算机的处理方式往往不符合人们的思维习惯
(
三大原
则中的第三点
)。
3
1.1计算机的三大原则
计算机三大原则中的每一条
,
都是从事计算机行业
20
余年的笔者
深切领悟出来的
。
诸位可以把这本书拿给你周围了解计算机的朋友看
,
他们应该会对你说
“
确实是这样的啊
”“
当然是这样的了
”
这类话
。
过
去的计算机发烧友们在不知不觉中就能逐渐领悟出计算机的三大原则
。
而对于那些打算从今日开始深入接触计算机的普通人来说
,
三大原则
中的有些地方也许一时半会儿难以理解
,
但是不要担心
,
因为下面的
解释会力求让诸位都能理解三大原则的具体含义
。
1.2 输入、运算、输出是硬件的基础
首先从硬件的基础开始介绍
。
从硬件上来看
,
可以说计算机是执
行输入
、
运算
、
输出三种操作的机器
。
计算机的硬件由大量的
IC
(
Integrated Circuit
,
集成电路
)
组成
(
如图
1.1
所示
)。
每块
IC
上都带
有许多引脚
。
这些引脚有的用于输入
,
有的用于输出
。
IC
会在其内部
对外部输入的信息进行运算
,
并把运算结果输出到外部
。
运算这个词
听起来也许有些难以理解
,
但实际上就是计算的意思
。
计算机所做的
事就是
“
输入
”
数据
1
和
2
,
然后对它们执行加法
“
运算
”,
最后
“
输
出
”
计算结果
3
![](https://i-blog.csdnimg.cn/blog_migrate/35e9065174966361f37334326cc9b965.png)
1.2 输入、运算、输出是硬件的基础
小型的
IC
自不必说
,
就连在观察银行的在线系统这类巨型系统时,
或是编写复杂的程序时
,
也要时常把输入
、
运算
、
输出这三者想成是一套流程,
这一点很重要
。
其实计算机就是台简单的机器
,
因为它只能做这三件事。 “你说得不对
,
计算机能做的事远比这些多得多
。”
也许会有人这 样反驳笔者。
的确
,
计算机可以做各种各样的事
,
比如玩游戏
、
处理 文字、
核算报表
、
绘图
、
收发电子邮件
、
浏览网页
,
等等
。
但是无论是多么复杂的功能,
都是通过组合一个又一个由输入
、
运算
、
输出构成的流程单位来实现的,
这是毋庸置疑的事实
。
如果打算用计算机做点什么的话,
就要考虑该如何进行输入
、
如何获取输出以及进行怎样 的运算才能从输入得到输出。 输入、
运算
、
输出三者必须成套出现
,
缺一不可
。
这样说的原因 有几点。
首先
,
现在的计算机还没有发展到能通过自发的思考创造出信息的地步。
因此不输入信息
,
计算机就不能工作
。
所以
,
输入是必不可少的。
其次
,
计算机不可能不执行任何运算
。
如果只是使输入的 信息绕过运算环节直接输出,
那么这就是电线而不是计算机了
。
可以说不进行运算,
计算机也就没有什么存在的意义
。
最后
,
输入的信息如果经过了运算,
那么运算结果就必然要输出
。
如果不输出结果
,
那么这也不是计算机而只是堆积信息的垃圾箱了。
因此
,
输出也必不可少
。
![](https://i-blog.csdnimg.cn/blog_migrate/1e9c561b4366843d55b63b0f67c077a9.png)
计算机的三大原则
然后经过编译就可以生成可执行的程序文件
MyProg.exe
了
。
接下来使用能查看文件内容的工具查看 MyProg.exe
,
其内容应该与代码清单
1.2 类似。
可以看到里面仅仅是数值的罗列
(
这里用十六进制数表示
)。
C7 45 FC 01 00 00 00 C7 45 F8 02 00 00 00 8B 45F8 50 8B 4D FC 51 E8 82 FF FF FF 83 C4 08 89 45F4 8B 55 F4 52 68 1C 30 42 00 E8 B9 03 00 00 83
请选择一个代码清单 1.2 中的数值,随便哪个都可以。这个数值代表什么呢?是表示赋值或加法等指令的种类呢,还是表示将成为指令执行对象的数据呢?也有这样的可能(不过这终归是想象),第一个数值C7 表示指令,第二个数值 45 表示数据。在诸位所使用的 Windows 个人计算机中,应该会有若干个以 .exe 为扩展名的可执行程序文件。无论是哪个程序,其内容都是数值的罗列,每个数值要么是指令,要么是数据。
![](https://i-blog.csdnimg.cn/blog_migrate/2c004508c14569e443fd03114d252cbc.png)