分享一下: CSP初赛知识点梳理
\large\texttt{计算机}计算机
-
计算机的分类 \checkmark✓
-
按年代分类 \begin{matrix} \text{年代\qquad} & \text{实现方式}\\\\ \text{1946\,至1958\qquad} & \text{电子管}\\\\ \text{1959\,至1964\qquad} & \text{晶体管}\\\\ \text{1965\,至1970\qquad} & \text{集成电路}\\\\ \text{1971\,至N/A\qquad} & \text{超大规模集成电路}\\\\ \end{matrix}年代1946至19581959至19641965至19701971至N/A实现方式电子管晶体管集成电路超大规模集成电路
-
按性能分类 巨型机>大/中型机>小型机>微型机=工作站。 补:一般按照规模大小、性能、能耗等分类。
- 巨型机(超级计算机,简称「超算」):速度极快,容量极高,体积极大。高速度,大容量,因而能够承担重大的科学研究,用于计算地震/太空/天气预报等复杂用途,我国的有:银河/天河等。
补:巨型机运算速度平均每秒千万次以上,存储容量千万位以上。
- 大/中型机:速度快,容量极高,体积大。高可靠性,可用性,服务型,主要用于顶尖科研领域。
补:大型机和超级计算机(旧称巨型机)的主要区别:
- 大型机使用专用指令系统和操作系统,巨型机使用通用处理器及 UNIX 或类 UNIX 操作系统(如 Linux)。
- 大型机长于非数值计算(数据处理),巨型长于数值计算(科学计算)。
- 大型机主要用于商业领域,如银行和电信,而巨型用于尖端科学领域,特别是国防领域。
- 大型机大量使用冗余等技术确保其安全性及稳定性,所以内部结构通常有两套。而巨型机使用大量处理器,通常由多个机柜组成。
- 为了确保兼容性,大型机的部分技术较为保守。
- 小型机:速度快,容量高,体积中。主要用于单位服务器/其他领域。
补:小型机采用精简指令集处理器,性能和价格介于PC服务器和大型主机之间的一种高性能 6464 位计算机。 补:小型机主要用于金融证券和交通等对业务的单点运行具有高可靠性的行业应用。
- 微型机:速度快,容量中,体积小。主要用于个人工作/处理数据,2020 世纪 707**0 年代后非常普及(电脑大部分都是微型机)**。各位同学面前的电脑、笔记本、手机等等基本上都是微型机。
- 工作站:速度快,容量中,体积小。用于辅助微型机工作。
-
-
空间换算 \bigstar★ \begin{matrix} \text{「小」单位\qquad} & \text{「大」单位}\\\\ \text{8 bit(比特)\qquad} & \text{1 B(Byte/字节)}\\\\ \text{1024 B\qquad} & \text{1 KiB(Kilobyte)}\\\\ \text{1024 K(iB)\qquad} & \text{1 MiB(Millonbyte)}\\\\ \text{1024 M(iB)\qquad} & \text{1 GiB(Gigabyte)}\\\\ \text{1024 G(iB)\qquad} & \text{1 TiB(Terabyte)}\\\\ \end{matrix}「小」单位8 bit(比特)1024 B1024 K(iB)1024 M(iB)1024 G(iB)「大」单位1 B(Byte/字节)1 KiB(Kilobyte)1 MiB(Millonbyte)1 GiB(Gigabyte)1 TiB(Terabyte)\text{iB}iB 结尾的是 10241024 单位一换算,\text{B}B 结尾的是 10001000 单位一换算(如 \text{KB}KB,上表中没有),这就是我们买的 \text{512GiB}512GiB 硬盘有时候显示不到 \text{500GiB}500GiB 的原因。(单位不同) 考试时注意审题。
-
重要贡献人员 \bigstar★
- 阿兰·艾伦·图灵(英):数学家,逻辑学家,计算机科学/人工智能之父,首次提出了计算机科学理论。计算机界的最高奖项“图灵奖”以他命名,被称为“计算机界的诺贝尔奖”。
- 冯·诺依曼(美):科学家,现代计算机之父,首次提出了存储程序控制原理,称为“冯·诺依曼结构”。
- 克劳德·香农(美):科学家,创造了信息论,提出了某种信息从一处传送到另一处所需的全部设备所构成的系统。
- 习题
-
计算机的构成 \checkmark✓ 要想实现计算机的基础功能,计算机必须由运算器、存储器、控制器、输入设备、输出设备构成,缺少前两者就无法正常启动计算机,即为“冯·诺依曼结构”。
- CPU(Central Processing Unit):中央处理器,由运算器(计算)+控制器(指挥)+寄存器组成。
计算机的核心部件,被称为计算机的“大脑”,又称“微处理器”。
- 内存储器:简称“内存”,用于电脑内部的存储。相对外存而言,读写速度快,但是存储空间小,并且存储在 RAM 里的数据断电后会丢失。注意与“外存(硬盘等)”区分开。
- RAM(Random Access Memory):随机存取存储器,与CPU直接交互数据,可随时读写,断电数据全部丢失。
- ROM(Read-Only Memory):只读存储器,只能读出无法写入信息。信息一旦写入后就固定下来,断电数据不会丢失,故又称为固定存储器。
- 外存储器:简称“外存”,用于处置长期保存的数据,一般处于电脑外部,断电后数据不会丢失。相对内存而言,外存读写速度慢,但存储容量大。主要包括硬盘、光盘、U 盘(USB闪存盘)等类型。
- 输入设备:在计算机与人交互时,接受外部命令或者需要加工的数据。常用的输入数据包括键盘、鼠标、麦克风、摄像头等。
- 输出设备:在计算机与人交互时,将处理结果以人类能够识别/感受的方式呈现出来的设备。常有的输出设备包括显示器、音响、打印机等。
如上图,为各个设备之间的关系,不同设备用不同颜色进行表示。
-
关于CPU \checkmark✓
- 访问速度:寄存器>高速缓存>内存>外存。
- 历史:出现于 2020 世纪 7070 年代。
- 断电后数据保留于 ROM 和外存。
-
文件扩展名(注意不是“拓展名”) \checkmark✓
- 图像存储:jp(e)g/png/pic/bmp/gif。
- 音频存储:mp3/wav。
- 视频存储:mp4/avi/mpeg/flv/rmvb/rpm。
-
计算机语言常识 \bigstar★
- 机器语言/机器码:最早的语言,计算机能识别的语言,由二进制数字 0/10**/1 组成**,速度快,人类编码难度高,一般由计算机自动转换。
- 汇编语言:用符号代替二进制数,计算机不能直接识别,需要用编译器进行编译,难度依然很大,目前除了对性能要求极高的需求以外不被使用。
- 高级语言:如今的编程语言(C++,JAVA 等),需要用编译器,难度小,分为编译方式和解释方式两种编译方式。
- 编译方式(C++):先对整个程序进行编译(会进行多次分析),再执行程序。速度快(进行多次编译对程序进行优化)。
- 解释方式(Python/PHP):扫描一行解释一行,速度慢(无法进行优化)。
- 习题:
-
ASCII 码 \checkmark✓ ASCII 码(American Standard Code for Information Interchange)是美国国家交换标准代码,现成为世界交换代码标准。 ASCII 码是一种用 88 个比特组成的二进制编码(即一个字节),用于表示 128128 个国际通用字符。 \begin{matrix} \text{位置\qquad} & \text{分类} &\text{可见性}\\\\ 0\sim 31,\,127\qquad & \text{控制字符或通信专用字符} & \text{N}\\\\ 32\qquad & \text{空格} & \text{Y/N}\\\\ 33\sim 47,\,58\sim 64,\,94\sim 96, 126\qquad & \text{特殊字符(除字母/数字/空格/控制字符外的其他字符)} & \text{Y}\\\\ \checkmark\,48\sim 57\qquad & \text{数字(按大小升序)} & \text{Y}\\\\ \checkmark\,65\sim 90\qquad & \text{大写字母(按字母表升序)} & \text{Y}\\\\ \checkmark\,97\sim 122\qquad & \text{小写字母(按字母表升序)} & \text{Y}\\\\ \end{matrix}位置0∼31,1273233∼47**,58∼64,94∼96,126✓48∼57✓65∼90✓97∼122分类控制字符或通信专用字符空格特殊字符(除字母/数字/空格/控制字符外的其他字符)数字(按大小升序)大写字母(按字母表升序)小写字母(按字母表升序)可见性NY/NYYYY补:2^8 = 25628=256,2^7 = 12827=128,这是因为在 ASCII 码中,把二进制最高位为 00** 的数字都称为基本的 ASCII 码,其范围是 0\sim 1270∼127;把二进制最高位为 11 的数字都称为拓展的 ASCII 码,其范围是 0\sim 2560∼256。 补:一个汉字在计算机中占 22 个 \text{Byte}Byte。
-
机器数与真值 \bigstar★ 计算机中要处理的整数有“无符号”和“有符号”之分,“无符号”整数顾名思义就是不考虑正负的整数,可以直接用二进制表示,故只讨论“有符号”整数。
- 原码:原码将一个整数表示成符号位+二进制串。符号位上,00 表示正数,11 表示负数。 但是,用这种方法表示的数进行两个异号数相加或两个同号数相减时很不方便,而且 00 的表示不唯一,于是引入了“反码”和“补码”。
补:原码中,00 的表示有两种: +0**+0 或 -0−0,两种的区别在于符号位,+0+0 表示为 0000000000000000,-0−0 表示为 100000001000000**0。
- 反码:对于一个正数,反码就是其原码;对于一个负数,反码就是除符号位外,原码的各位全部取反,即 00 变 11,11 变 00。 如:x_{\text{原}}=01000101, x_{\text{反}}=01000101x原=01000101**,x反=01000101**。 \,\,\,\,\,\,\,\,\,\,x_{\text{原}}=11000101, x_{\text{反}}=10111010x原=11000101**,x反=10111010**。 补:多数计算机不采用反码表示数值。
- 补码:对于一个正数,补码就是其原码;对于一个负数,补码等于反码+1。 如:x_{\text{原}}=01000101, x_{\text{补}}=01000101x原=01000101**,x补=01000101**。 \,\,\,\,\,\,\,\,\,\,x_{\text{原}}=11000101, x_{\text{补}}=10111011x原=11000101**,x补=10111011**。
-
逻辑运算 \checkmark✓
- 逻辑非:!! 或 \neg¬,操作数的反值(!1=0,!0=1**!1=0,**!0=1)。
- 逻辑与