梳理(1-5)

计算机基础知识整理

一、计算机发展史

代次 起止年份 电子元器件

① 1946---1957 电子管

② 1958---1964 晶体管

③ 1965---1970 中小规模集成电路

④ 1970---今 大规模及超大规模集成电路

二、关键人物与里程碑

  1. 艾伦·图灵(人工智能之父)

· 1936 年:提出计算模型【图灵机】。

· 1966 年:美国计算机协会(ACM)设立【图灵奖】,被誉为"计算机界的诺贝尔奖"。

  1. 冯·诺伊曼(计算机之父)

· 1945 年 3 月:起草 EDVAC(存储程序通用电子计算机方案)。

  1. 莫尔小组(ENIAC)

· 研制出世界上第一台通用计算机 ENIAC。

三、计算机系统结构

  1. 冯·诺伊曼体系结构

· 数据流向:输入设备 → 存储器 → 输出设备。

· 核心部件:CPU(中央处理器)包含运算器和控制器,并与存储器进行数据交互。

  1. 输入输出(I/O)设备

· 即 Input/Output 设备。

· 常见举例:键盘、鼠标等。

  1. 操作系统与软件分类

· 硬件与软件的关系:

· 系统软件:负责管理硬件,如操作系统。

· Windows:主流,微软。

· Linux:主要用于服务器。

· macOS:苹果。

· 应用软件:基于系统软件运行。

· 举例:QQ、微信、原神。

  1. 计算机寻址空间

· 分为 32 位、64 位等。

· 含义:指计算机的寻址能力,通常位数越高越好。

  1. 补充:文件扩展名

· 特殊地,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 进制

  1. 整数部分

· 白板规则:除以基数 n,取余数,倒着读。

· 简记:除基取余倒读。

举例:将十进制 13 转为二进制(n = 2)。

· 13 ÷ 2 = 6 ...... 余 1

· 6 ÷ 2 = 3 ...... 余 0

· 3 ÷ 2 = 1 ...... 余 1

· 1 ÷ 2 = 0 ...... 余 1

将余数从下往上读取,得到二进制:1101。

  1. 小数部分

· 白板规则:乘以基数 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 进制转十进制

  1. 整数部分

· 白板规则:从个位到高位,每次乘以进制的相应次方,并求和。

· 即按权展开求和。

举例:将二进制 1101 转为十进制。

· 从右往左,依次乘以 2 的 0 次方、1 次方......

· 1 × 2³ + 1 × 2² + 0 × 2¹ + 1 × 2⁰

· = 8 + 4 + 0 + 1 = 13

  1. 小数部分

· 白板规则:从十分位开始,每次乘以进制的相应次方,并求和。

· 补充说明:从小数点后第一位(十分位)开始,依次乘以基数的负 1 次方、负 2 次方......

举例:将二进制 0.101 转为十进制。

· 1 × 2⁻¹ + 0 × 2⁻² + 1 × 2⁻³

· = 0.5 + 0 + 0.125 = 0.625

综合示例:二进制 1101.101 转为十进制为 13.625。


位运算基础知识与举例

一、四种基本位运算

  1. 按位与(&)

· 白板规则: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。

  1. 按位或(|)

· 白板规则:0 | 0 = 0,0 | 1 = 1,1 | 1 = 1

· 核心口诀:两数中只要有一个 1,结果就为 1。

举例:十进制 12 与 10 进行按位或运算。

· 12 的二进制:0000 1100

· 10 的二进制:0000 1010

· 按位或结果:0000 1110,即十进制 14。

  1. 按位取反(~)

· 白板规则:~1 = 0,~0 = 1

· 举例:

· 单比特层面:1 变 0,0 变 1。

· 编程注意点:在 C++ 中,int 通常为 32 位。如果对 5(二进制 ...0000 0101)取反,得到 ...1111 1010,在补码表示中代表负数 -6。

  1. 按位异或(^)

· 白板规则: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 \| 按位或

相关推荐
HZZD_HZZD1 小时前
CSDN_批发市场水电漏损归因算法LAM的原理与落地
嵌入式硬件·物联网·算法
jimy12 小时前
readelf 查看“派生类”的vtable符号
开发语言·c++
蒸蒸yyyyzwd2 小时前
cpp 选手秋招学习笔记 day37 面经学习
c++·八股
YYYing.3 小时前
【C++进阶系列 (七)】C++ RTTI 深度剖析:从 typeid 到 dynamic_cast 的底层之旅
开发语言·c++·c/c++·rtti
shirsl3 小时前
算法 Day 5 树 / 二叉树 + DFS
数据结构·python·算法
江湖人称菠萝包3 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter2-GUI应用程序设计基础
笔记·qt·qt5
职豚求职小程序3 小时前
中华财险27届校招笔试[特殊字符]考情速览攻略
笔记
木子算法3 小时前
非凸、离散、还耦合:论文里的求解方法是一条四步流水线
人工智能·算法·目标跟踪
虚无的纽扣3 小时前
【力扣刷题】第二天:无重复字符的最长字串、移动零问题
算法·leetcode·排序算法