第一章 计算器基础知识
第一课 计算机发展史
1. 计算机发展的五个阶段划分:
2. 1946年,世界上第一台电子计算机ENIAC在美国宾夕法尼亚大学诞生。
3. 计算机界的两位重要人物
- 冯·诺依曼——计算机之父,提出计算机体系结构。
- 图灵——人工智能之父,提出图灵试验。
- PS:2000年,华裔计算机科学家姚期智获得了图灵奖,他是唯一一位获得图灵奖的华人。
4. 冯·诺依曼式的计算机体系结构
冯·诺依曼提出计算机硬件设备由5部分组成(如下图所示),并且由总线(地址总线、数据总线、控制总线)连接。
冯·诺依曼的存储程序思想:
程序+数据
5. 计算机的应用
- 数值计算
- 数据和信息处理
- 过程控制
- 计算机辅助系统
- 人工智能
第二课 计算机系统的基本结构
1. 处理器
- CPU
- GPU
- TPU
2. 总线结构
- 数据总线(DB)
- 地址总线(AB)
- 控制总线(CB)
3. 存储器
4. 存储器容量单位的换算
- 1KB=1024B
- 1MB=1024KB
- 1GB=1024MB
- 1TB=1024GB
- 1PB=1024TB
5. 主要的性能指标
- 字长
- 运算速度
- 主频
- 内存容量
第三课 计算机软件系统
1. 系统软件
- 操作系统
- 语言处理程序
- 数据库管理系统
2. 应用软件
不用说,WPS、微信、DeepSeek都是应用软件
第四课 计算机语言
就两种:低级和高级语言!!!
1.低级语言
低级语言依赖于硬件,可读性和可移植性差,分两种。
1. 机器语言
例:10101000110101110 (看不懂就对了)
2. 汇编语言
例:ADD (数字逻辑上的加减)
2.高级语言
高级语言是一种独立于机器的语言,从解决问题方式的角度分两种。
1.面向过程:自顶往下逐步求精,最重要的是模块化的思想方法。
例:C、Pascal、Fortran
2.面向对象:把事物抽象成类,再实例化成对象,对象包括属性与行为。
例:C++、C#、Java、Python、JavaScript
注意:
先有面向过程再有面向对象!!!
补充:
Fortran是第一个高级语言,Smalltalk是第一个支持面向对象的语言。
3.高级语言的翻译过程
有两种:
1.编译性语言
例:C/C++、Pascal/ObjectPascal(Delphi)
2.解释性语言
例:ASP、Java、C#、PHP、JavaScript、VBScript、Perl、Python、Ruby、MATLAB
第五课 数制转换
一、常见的进制
1. 十进制(Decimal):
- 基数为10,使用0~9十个数字。
- 示例:123.45 = 1×10² + 2×10¹ + 3×10⁰ + 4×10⁻¹ + 5×10⁻²
2. 二进制(Binary):
- 基数为2,使用0和1两个数字。
- 计算机内部使用二进制,因为二进制状态(0和1)易于用物理设备表示(如开和关,高电平和低电平)。
- 示例:101.11(二进制) = 1×2² + 0×2¹ + 1×2⁰ + 1×2⁻¹ + 1×2⁻² = 5.75(十进制)
3. 八进制(Octal):
- 基数为8,使用0~7八个数字。
- 示例:123.4(八进制) = 1×8² + 2×8¹ + 3×8⁰ + 4×8⁻¹ = 83.5(十进制)
4. 十六进制(Hexadecimal):
- 基数为16,使用0~9和A~F(或a~f)表示,其中A=10,B=11,C=12,D=13,E=14,F=15。
- 在计算机中常用于简化二进制表示(因为与二进制转换方便)。
- 示例:1A.8(十六进制) = 1×16¹ + 10×16⁰ + 8×16⁻¹ = 26.5(十进制)
二、为什么计算机使用二进制
- 物理实现容易:只需要两种稳定状态的物理器件(如开关、电压的高低),抗干扰能力强。
- 运算规则简单:二进制的加、减、乘、除等运算规则比十进制简单得多,容易用数字电路实现。
- 逻辑运算方便:可以方便地用二进制数的位来表示逻辑真和假,进行逻辑运算。
三、进制转换
1. 其他进制转十进制(按权展开)
- 公式:将一个进制数按权展开相加,权重为基数的幂次(从个位开始,整数部分为0次幂,向左递增;小数部分为负幂次,向右递减)。
- 示例:
- 二进制数
1011.101
→ 1×2³ + 0×2² + 1×2¹ + 1×2⁰ + 1×2⁻¹ + 0×2⁻² + 1×2⁻³ = 11.625(十进制) - 八进制数
57.6
→ 5×8¹ + 7×8⁰ + 6×8⁻¹ = 47.75(十进制) - 十六进制数
2F.8
→ 2×16¹ + 15×16⁰ + 8×16⁻¹ = 47.5(十进制)2. 十进制转其他进制
- 整数部分:除基取余法(从下往上取余数) 步骤:用十进制数不断除以目标基数,直到商为0,余数从下往上排列。
- 小数部分:乘基取整法(从上往下取整数部分) 步骤:用十进制小数部分不断乘以目标基数,直到积的小数部分为0或达到所需精度,每次取乘积的整数部分,从上往下排列。
- 示例:
- 将十进制数
25.375
转换为二进制:- 整数部分25:25 ÷ 2 = 12 余1 ↑
12 ÷ 2 = 6 余0 ↑
6 ÷ 2 = 3 余0 ↑
3 ÷ 2 = 1 余1 ↑
1 ÷ 2 = 0 余1 ↑ 所以整数部分为 `11001`
- 小数部分0.375:0.375 × 2 = 0.75 → 整数部分0
0.75 × 2 = 1.5 → 整数部分1
0.5 × 2 = 1.0 → 整数部分1 所以小数部分为 `.011`
- 因此
25.375 = 11001.011
(二进制)
- 整数部分25:25 ÷ 2 = 12 余1 ↑
- 将十进制数
- 二进制转八进制:将二进制数从小数点开始,分别向左(整数部分)和向右(小数部分)每3位一组分组,不足3位的用0补齐,然后每组二进制数转换为对应的八进制数。
- 示例:
11010111.1101
(二进制) - 整数部分:分组(011, 010, 111)注意:最高位补0 → 3,2,7 → 327(八进制)
- 小数部分:分组(110, 100)最低位补0 → 6,4 → .64(八进制)
- 所以整体为
327.64
(八进制)
- 示例:
- 八进制转二进制:将每一位八进制数转换为3位二进制数(不足3位在高位补0),然后拼接起来。
- 示例:
65.4
(八进制)→ 6→110, 5→101, 4→100 →110101.100
(二进制)
- 示例:
- 二进制转十六进制:每4位一组分组。
- 示例:
11101011.101101
(二进制) - 整数部分:分组(1110, 1011)→ E, B →
EB
(十六进制) - 小数部分:分组(1011, 0100)注意:最低位补0 → B, 4 →
.B4
(十六进制) - 所以整体为
EB.B4
(十六进制)
- 示例:
- 十六进制转二进制:将每一位十六进制数转换为4位二进制数,然后拼接。
- 计算机使用二进制作为基础。
- 理解不同进制的表示方法(权值)。
- 掌握不同进制之间的转换方法:
- 其他进制转十进制:按权展开。
- 十进制转其他进制:整数部分除基取余,小数部分乘基取整。
- 二进制与八进制、十六进制之间的快速转换:分组法。
第六课 信息编码表示
1.认识计算机中的信息
1.什么是信息
- 信息就是计算机能理解的各种数据
- 例子:文字、数字、图片、声音
2.计算机如何表示信息
- 计算机只认识0和1
- 所有信息最终都变成0和1的组合
2.数字的编码表示
1. 十进制与二进制
- 十进制:我们平时用的0-9
- 二进制:计算机用的0和1
2. 数字转换小游戏
十进制 | 二进制
0 | 0
1 | 1
2 | 10
3 | 11
4 | 100
3.字母的编码表示
1. ASCII码表
- 每个字母对应一个数字
例如:A→65,B→66
2. 简单C++代码演示
#include <iostream>
using namespace std;
int main() {
char letter = 'A';
cout << "字母 " << letter << " 的编码是: " << (int)letter;
return 0;
}
4.颜色的编码表示
1. RGB颜色
- 红(Red)、绿(Green)、蓝(Blue)混合
- 每种颜色用0-255的数字表示
2. 颜色编码练习
红色:RGB(255,0,0)
绿色:RGB(0,255,0)
蓝色:RGB(0,0,255)
黄色:RGB(255,255,0)
5.综合练习
1. 编码转换挑战
- 把名字转换成ASCII码
- 用二进制表示年龄
2. 简单C++程序
#include <iostream>
using namespace std;
int main() {
string name;
cout << "输入你的名字: ";
cin >> name;
cout << "名字的ASCII码: ";
for(char c : name) {
cout << (int)c << " ";
}
return 0;
}
第七课 原码反码补码
1.真值
机器数的第一位是符号位(0代表正,1代表负),后边才是真正的数值。
2.原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。
3.反码
- 正数的反码是其本身。
- 负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
4.补码
- 正数的补码是其本身。
- 负数的补码是在其原码的基础上,符号位不变,其余各个位取反,最后+1(即在反码的基础上+1)
第八课 计算机网络
1.网络的主要功能
- 资源共享
- 信息传输
- 分布式处理
- 综合信息服务
2.网络的分类
1.按网络的地理范围分类
- 局域网(LAN)
- 城域网(MAN)
- 广域网(WAN)
2.按网络的拓扑结构分类
- 星形
- 总线形
- 环形
- 树形
- 网状形
3.网络的体系结构
4.计算机病毒
计算机病毒的特征:
- 繁殖性
- 破坏性
- 传染性
- 潜伏性
- 隐蔽性
- 可触发性