计算机基础知识整理
一、计算机发展史
代次 起止年份 电子元器件
① 1946---1957 电子管
② 1958---1964 晶体管
③ 1965---1970 中小规模集成电路
④ 1970---今 大规模及超大规模集成电路
二、关键人物与里程碑
- 艾伦·图灵(人工智能之父)
· 1936 年:提出计算模型【图灵机】。
· 1966 年:美国计算机协会(ACM)设立【图灵奖】,被誉为"计算机界的诺贝尔奖"。
- 冯·诺伊曼(计算机之父)
· 1945 年 3 月:起草 EDVAC(存储程序通用电子计算机方案)。
- 莫尔小组(ENIAC)
· 研制出世界上第一台通用计算机 ENIAC。
三、计算机系统结构
- 冯·诺伊曼体系结构
· 数据流向:输入设备 → 存储器 → 输出设备。
· 核心部件:CPU(中央处理器)包含运算器和控制器,并与存储器进行数据交互。
- 输入输出(I/O)设备
· 即 Input/Output 设备。
· 常见举例:键盘、鼠标等。
- 操作系统与软件分类
· 硬件与软件的关系:
· 系统软件:负责管理硬件,如操作系统。
· Windows:主流,微软。
· Linux:主要用于服务器。
· macOS:苹果。
· 应用软件:基于系统软件运行。
· 举例:QQ、微信、原神。
- 计算机寻址空间
· 分为 32 位、64 位等。
· 含义:指计算机的寻址能力,通常位数越高越好。
- 补充:文件扩展名
· 特殊地,Linux 系统不强制依赖扩展名,主要依靠文件权限和属性识别文件类型。
· .cpp、.doc、.mp3、.txt 等扩展名只是文件名的一部分,并非 Linux 识别文件类型的强制依据。
CSP-J/S 考试基本信息
注:通常写作 CSP-J/S。
一、考试基本信息
· 考试名称:CSP-J/S
· 主办方:CCF(中国计算机学会)
· 性质:非专业级等级认证
二、赛制与流程
考试分为两轮:
· 第一轮(初赛):笔试
· 第二轮(复赛):上机
· 晋级要求:必须通过初赛,才能参加复赛。
三、报名限制与要求
· 人群:所有人都可报名。
· 年龄限制:要求年龄 ≥ 12 周岁。
· 前置条件:进入复赛必须通过初赛。
四、报名方式与审核流程
· 报名渠道:官方网站报名。
· 网址:https://cspsjtest.noi.cn/
· 报名审核流程:
· 提交报名后,需经过指导教师或特派员的审核。
计算机存储与数据类型基础知识
一、存储基本概念
· bit:计算机最小存储单位。
· byte:计算机存储基本单位。
· 特性:计算机存储容量由若干字节组成,通常字节数越大,可存储的数据越多,性能也越好。
· 备注:下表默认以字节(Byte)为换算单位;注意 bit 与 Byte 不同,1 Byte = 8 bit。
二、存储容量单位转换表
中文单位 单位 字节数 字节数近似值
千 KB 2^10(1024) 10^3
兆 MB 2^20 10^6
吉 GB 2^30 10^9
太 TB 2^40 10^12
拍 PB 2^50 10^15
艾 EB 2^60 10^18
三、C++ 中常用数据类型所占空间
· int:4 字节
· float:4 字节
· long long:8 字节
· double:8 字节
· char:1 字节
· bool:1 字节
注:以上为常见环境下的典型大小,具体可能因平台或编译器而异。
四、ASCII 码
· 英文全称:American Standard Code for Information Interchange(ASCII)
· 常见字符对应值:
· A:65
· a:97
· 0:48
进制转换规则及举例
一、十进制转 n 进制
- 整数部分
· 白板规则:除以基数 n,取余数,倒着读。
· 简记:除基取余倒读。
举例:将十进制 13 转为二进制(n = 2)。
· 13 ÷ 2 = 6 ...... 余 1
· 6 ÷ 2 = 3 ...... 余 0
· 3 ÷ 2 = 1 ...... 余 1
· 1 ÷ 2 = 0 ...... 余 1
将余数从下往上读取,得到二进制:1101。
- 小数部分
· 白板规则:乘以基数 n,取整数,正着读。
· 简记:乘基取整正读。
举例:将十进制 0.625 转为二进制(n = 2)。
· 0.625 × 2 = 1.25 ...... 取整数 1
· 0.25 × 2 = 0.5 ...... 取整数 0
· 0.5 × 2 = 1.0 ...... 取整数 1
将整数部分从上往下读取,得到二进制:0.101。
综合示例:十进制 13.625 转为二进制为 1101.101。
二、n 进制转十进制
- 整数部分
· 白板规则:从个位到高位,每次乘以进制的相应次方,并求和。
· 即按权展开求和。
举例:将二进制 1101 转为十进制。
· 从右往左,依次乘以 2 的 0 次方、1 次方......
· 1 × 2³ + 1 × 2² + 0 × 2¹ + 1 × 2⁰
· = 8 + 4 + 0 + 1 = 13
- 小数部分
· 白板规则:从十分位开始,每次乘以进制的相应次方,并求和。
· 补充说明:从小数点后第一位(十分位)开始,依次乘以基数的负 1 次方、负 2 次方......
举例:将二进制 0.101 转为十进制。
· 1 × 2⁻¹ + 0 × 2⁻² + 1 × 2⁻³
· = 0.5 + 0 + 0.125 = 0.625
综合示例:二进制 1101.101 转为十进制为 13.625。
位运算基础知识与举例
一、四种基本位运算
- 按位与(&)
· 白板规则:0 & 0 = 0,0 & 1 = 0,1 & 1 = 1
· 核心口诀:只有两数同为 1 时才为 1,其他都为 0。
举例(以 8 位二进制为例):十进制 12 与 10 进行按位与运算。
· 12 的二进制:0000 1100
· 10 的二进制:0000 1010
· 按位与结果:0000 1000,即十进制 8。
白板补充应用:
· 如果想清空一个二进制数组,可以将每一位按位与 0;任何数与 0 做与运算都会变成 0。
· 可应用于 lowbit 自定义函数,通常用于树状数组:x & -x 可以提取出一个数最低位的 1。
- 按位或(|)
· 白板规则:0 | 0 = 0,0 | 1 = 1,1 | 1 = 1
· 核心口诀:两数中只要有一个 1,结果就为 1。
举例:十进制 12 与 10 进行按位或运算。
· 12 的二进制:0000 1100
· 10 的二进制:0000 1010
· 按位或结果:0000 1110,即十进制 14。
- 按位取反(~)
· 白板规则:~1 = 0,~0 = 1
· 举例:
· 单比特层面:1 变 0,0 变 1。
· 编程注意点:在 C++ 中,int 通常为 32 位。如果对 5(二进制 ...0000 0101)取反,得到 ...1111 1010,在补码表示中代表负数 -6。
- 按位异或(^)
· 白板规则:0 ^ 0 = 0,0 ^ 1 = 1,1 ^ 1 = 0
· 核心口诀:相同为 0,不同为 1。
举例:十进制 12 与 10 进行按位异或运算。
· 12 的二进制:0000 1100
· 10 的二进制:0000 1010
· 按位异或结果:0000 0110,即十进制 6。
白板补充性质:
· a ^ b ^ a = b
· a ^ a ^ b = b
· 应用举例:
· 利用此性质可以实现两个变量交换值而不需要额外变量:
```cpp
a = a ^ b;
b = a ^ b;
a = a ^ b;
```
· 也可以在一堆数字中找出唯一一个只出现一次的数字(其他数字都出现两次)。
二、位运算优先级(由高到低)
优先级 运算符 说明
1 ~ 按位取反
2 <<, >> 左移、右移
3 & 按位与
4 ^ 按位异或
5 \| 按位或