2025暑假CSP笔试笔记
计算机概述
1.计算机发展的五个阶段划分
2.冯·诺依曼计算机体系
冯诺伊曼提出计算机硬件设备由存储器、运算器、控制器、输入设备和输出设备5部分组成(如下图所示),并由总线连接。总线包括地址总线、数据总线、控制总线。
1946年,世界上第一台电子计算机ENIAC在美国宾夕法尼亚大学诞生。
冯诺依曼的存储程序思想
存储+数据
3.图灵
图灵:被称为“人工智能之父”,提出了一种判定机器是否具有智能的实验方法,即图灵实验。此外,图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。
4.计算机的应用
1.数值计算 2.数据和信息处理 3.过程控制 4.计算机辅助系统 5.人工智能
计算机系统的基本结构
1.存储器
2.总线结构
按照总线上传输信息的不同,总线可以分为数据总线(DB),地址总线(AB)和控制总线(CB)三种。
1.数据总线
用来传送数据信息,它主要连接了CPU与各个部件,是它们之间交换信息的通路。
2.地址总线
用来传送地址信息。CPU通过地址总线中传送的地址信息访问存储器,通常是单向的。
3.控制总线
用来传送控制信号,以协调各部件之间的操作。
3.主要的性能指标
1.字长 2.运算速度 3.主频 4.内存容量
计算机软件系统
计算机软件分为系统软件和应用软件。
计算机语言
低级语言
低级语言依赖于硬件,可读性和可移植性差。
高级语言
1.编译型语言;2.解释型语言
高级语言是一种独立于机器的语言,从解决问题方式分为面向过程和面向对象语言。
面向过程语言
自定往下逐步求精,最重要的是模块化的思维方法。
面向对象语言
把事物抽相成类,在实例化对象,对象包括属性与行为。
先有面向过程再有面向对象。 Fortran是第一个高级语言,Smalltalk是第一个面向对象的语言。
计算机进制与转换
一、常见的进制
- 十进制(Decimal):
- 基数为10,使用0~9十个数字。
- 示例:123.45 = 1×10² + 2×10¹ + 3×10⁰ + 4×10⁻¹ + 5×10⁻²
- 二进制(Binary):
- 基数为2,使用0和1两个数字。
- 计算机内部使用二进制,因为二进制状态(0和1)易于用物理设备表示(如开和关,高电平和低电平)。
- 示例:101.11(二进制) = 1×2² + 0×2¹ + 1×2⁰ + 1×2⁻¹ + 1×2⁻² = 5.75(十进制)
- 八进制(Octal):
- 基数为8,使用0~7八个数字。
- 示例:123.4(八进制) = 1×8² + 2×8¹ + 3×8⁰ + 4×8⁻¹ = 83.5(十进制)
- 十六进制(Hexadecimal):
- 物理实现容易:只需要两种稳定状态的物理器件(如开关、电压的高低),抗干扰能力强。
- 运算规则简单:二进制的加、减、乘、除等运算规则比十进制简单得多,容易用数字电路实现。
- 逻辑运算方便:可以方便地用二进制数的位来表示逻辑真和假,进行逻辑运算。
三、进制转换
1. 其他进制转十进制(按权展开)
- 公式:将一个进制数按权展开相加,权重为基数的幂次(从个位开始,整数部分为0次幂,向左递增;小数部分为负幂次,向右递减)。
- 示例:
- 整数部分:除基取余法(从下往上取余数) 步骤:用十进制数不断除以目标基数,直到商为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 ↑
- 将十进制数
100
转换为十六进制: 100 ÷ 16 = 6 余4(低位) 6 ÷ 16 = 0 余6(高位) 因此为64
(十六进制)3. 二进制与八进制、十六进制的转换
- 将十进制数
- 二进制转八进制:将二进制数从小数点开始,分别向左(整数部分)和向右(小数部分)每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位二进制数,然后拼接。
- 计算机使用二进制作为基础。
- 理解不同进制的表示方法(权值)。
- 掌握不同进制之间的转换方法:
- 其他进制转十进制:按权展开。
- 十进制转其他进制:整数部分除基取余,小数部分乘基取整。
- 二进制与八进制、十六进制之间的快速转换:分组法。