第1章 计算机基础知识

第1章 计算机基础知识

本章介绍学习 C++ 编程前需要了解的计算机关底知识:计算机的发展、冯·诺依曼体系结构、硬件与软件组成、分类与应用,以及程序是如何被"翻译"成机器能懂的语言的。这些概念是 GESP 一级选择题的高频考点。

1.1 计算机的发展

1.1.1 世界上第一台电子计算机

1946 年 2 月,世界上第一台电子数字计算机 ENIAC(Electronic Numerical Integrator And Calculator,电子数值积分计算机)诞生于美国宾夕法尼亚大学。

项目参数
运算速度约 5000 次加法/秒
重量约 30 吨
电子管约 18000 只
功耗约 150 kW
note

ENIAC 采用十进制而非二进制,且程序靠手动接线设置,使用很不方便。真正奠定现代计算机结构的,是冯·诺依曼提出的"存储程序"思想。

1.1.2 计算机发展的四代

人们按"主要元器件"把计算机发展史划分为四代:

代年份(约)主要元器件特点
第一代1946—1958电子管体积大、功耗高、易发热
第二代1959—1964晶体管体积缩小、可靠性提升
第三代1965—1970中小规模集成电路成本下降、性能提高
第四代1971—至今大规模/超大规模集成电路微型化、网络化、智能化

1.2 冯·诺依曼体系结构

1944 年前后,美籍匈牙利数学家 冯·诺依曼 提出"存储程序"计算机的设计思想,至今绝大多数计算机仍采用这一结构。

冯·诺依曼结构的三大要点:

  1. 硬件五大部件:运算器、控制器、存储器、输入设备、输出设备。
  2. 存储程序:把程序和数据一起存入存储器,计算机自动按程序指令顺序执行。
  3. 采用二进制:计算机内部一切信息都用 0 和 1 表示。

冯·诺依曼计算机五大部件结构

tip

五大部件中,运算器 + 控制器 合称 CPU(中央处理器);存储器分为内存(主存)和外存(辅存)。输入/输出设备统称 I/O 设备。

1.3 计算机硬件系统

1.3.1 运算器与控制器(CPU)

  • 运算器(ALU):负责算术运算(加减乘除)和逻辑运算(与或非、比较)。
  • 控制器(CU):从存储器取指令、译码,并指挥各部件协同工作。
  • CPU 的性能常用 主频(GHz) 衡量,主频越高,单位时间执行的指令越多。

1.3.2 存储器

类型别名特点举例
内存(主存)RAM速度快、断电数据丢失、容量较小内存条
外存(辅存)—速度慢、断电不丢、容量大硬盘、U 盘、光盘
caution

程序运行时,代码和数据必须先加载到内存才能被 CPU 执行;外存中的程序不能直接运行。因此写程序时定义的"变量",本质上是内存中的一小块空间。

1.3.3 输入与输出设备

  • 输入设备:键盘、鼠标、扫描仪、摄像头……
  • 输出设备:显示器、打印机、音箱……

1.4 计算机软件系统

软件分为两大类:

类别作用例子
系统软件管理硬件、为应用软件提供运行环境操作系统(Windows、Linux、macOS)、编译器、驱动程序
应用软件面向具体任务浏览器、WPS、游戏、QQ
note

操作系统(OS) 是最核心的系统软件,负责"进程管理、内存管理、文件管理、设备管理"。我们后面用的 Dev-C++ 就运行在操作系统之上。

1.5 计算机的分类

按 性能规模 由大到小:

  1. 超级计算机:算力极强,用于气象预报、核模拟等。代表:天河、神威·太湖之光。
  2. 大型机 / 小型机:用于银行、企业或科研。
  3. 微型计算机(PC):台式机、笔记本、平板,面向个人。
  4. 嵌入式计算机:嵌入到其它设备中的专用计算机,如智能家电、汽车电子、智能手表,体积小、功耗低。

按 用途 可分为:通用计算机(PC、服务器)和专用计算机(如嵌入式设备、互联网终端)。

1.6 计算机的应用领域

  1. 科学计算(数值计算):天气预报、卫星轨道、工程仿真。
  2. 数据处理:企业账务、人事管理、海量数据整理。
  3. 过程控制(实时控制):工业自动化生产线、智能交通。
  4. 人工智能:语音识别、图像识别、机器人、自动驾驶。
  5. 计算机辅助设计/制造(CAD/CAM):机械、建筑设计。
  6. 教育与娱乐:在线课程、游戏、影视特效。

1.7 程序设计语言与翻译方式

1.7.1 三级语言

语言层级特点例子
机器语言二进制指令,CPU 直接执行,人难以阅读10110000 01100001
汇编语言用助记符代替二进制,需汇编器翻译MOV AL, 61H
高级语言接近人类自然语言,需编译/解释C、C++、Python

我们学习的 C++ 是高级语言。用 C++ 写出的源程序(.cpp 文件)人能读懂,但 CPU 看不懂,必须经过"翻译"变成机器语言。

1.7.2 编译型 vs 解释型

方式过程特点代表
编译型一次性把全部源程序翻译成机器码,生成可执行文件运行快,但修改后需重新编译C、C++
解释型边读源程序边翻译边执行,不生成独立可执行文件跨平台好,运行稍慢Python、JavaScript
tip

C++ 属于编译型语言:我们写 hello.cpp → 编译器(如 GCC)把它编译成 hello.exe → 再运行 exe。这正是第 2 章 Dev-C++ 中"编译"按钮背后的原理。

下面这段就是最经典的 C++ 源程序,它需要被编译后才能运行:

#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl; // 编译后由 CPU 执行
return 0;
}

1.8 信息如何表示:二进制

计算机只认识 0 和 1。一个 0 或 1 称为 1 个比特(bit);8 个 bit 组成 1 个字节(Byte,简写 B)。

  • 1 KB=1024 B1\ \text{KB} = 1024\ \text{B}
  • 1 MB=1024 KB1\ \text{MB} = 1024\ \text{KB}
  • 1 GB=1024 MB1\ \text{GB} = 1024\ \text{MB}
note

为什么是 1024 而不是 1000?因为计算机用二进制,而 210=1024≈10002^{10} = 1024 \approx 1000。关于二进制、八进制、十六进制以及它们之间的相互转换,将在第 8 章详细讲解。

1.9 随堂检测

1. 现代计算机所采用的"存储程序"思想是由谁提出的?( )

  • A. 图灵
  • B. 冯·诺依曼
  • C. 比尔·盖茨
  • D. 香农
查看答案

答案:B。冯·诺依曼提出存储程序思想,奠定现代计算机体系结构。

2. 下列关于计算机硬件五大部件的说法,正确的是( )。

  • A. 运算器和控制器合称 CPU
  • B. 内存断电后数据不丢失
  • C. 显示器是输入设备
  • D. 硬盘属于内存
查看答案

答案:A。运算器 + 控制器 = CPU;内存断电丢失;显示器是输出设备;硬盘是外存。

3. C++ 语言属于( )。

  • A. 机器语言
  • B. 汇编语言
  • C. 高级语言(编译型)
  • D. 高级语言(解释型)
查看答案

答案:C。C++ 是高级语言,且为编译型语言。

SShowball OI知识手册