高考也已经结束了一个多月了,你的志愿也已经填好了。你能点开这个文章,相信你也已经准备好在大学里学习跟编程有关的专业。不知道你是否在之前听别人说过软考(全称:计算机技术与软件专业技术资格(水平)考试)它是原中国计算机软件专业技术资格和水平考试的完善与发展。该考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。想要详细了解的可以点击该链接去了解,这里我们就不多赘述。所以,从中可以看出该考试就是我们去敲开互联网大厂的敲门砖。
那么,我们这个文章呢主要是学习中级资格中的软件设计师。因为本人呢也是一名软件工程专业在校的一名大二的学生。我想通过这个文章呢,来和你们一起来学习这个课程。我会以自己所理解的方式来把一些难懂的知识点以简单易懂的方式所展现出来。那么废话不多说,我们就开始吧!!!
第一章 计算机系统知识
1.1计算机系统知识
根据考试大纲,本节知识主要涉及软件设计师上午的单选题,本章大概考6分左右。
1.1.1计算机系统硬件基本组成
- 计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。简单的说就是主机+外设。
- 运算器、控制器、存储器(主要指的是内存)等部件被集成在一起统称为中央处理单元(CPU)。
- 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据机中间结果;后者容量大、速度慢,可长期保存程序和数据。
- 输入设备和输出设备合称为外部设备(简称为外设),输入设备用于输入原始的数据及各种命令,而输出设备则用于处理结果。
1.1.2中央处理单元
- 中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
- CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
运算器
- 主要功能:1.执行算术运算。如:加、减、乘、除等基本运算 2.执行逻辑运算并进行逻辑测试。如:与、或、非等逻辑运算
- 运算器中各组件的功能:
1.算术逻辑单元(ALU)负责处理数据,实现对数据的算术运算和逻辑运算。(核心组件)
2.累加寄存器(AC)是一个通用寄存器,为ALU提供一个工作区,暂存运算结果 。
3.数据缓冲寄存器(DR)作为CPU和内存、外设之间数据传送的中转站,用于缓冲速度上的差异性。如在对内存进行读写操作时,用DR暂存由内存读写的指令或数据字。
4.状态条件寄存器(PSW)保存算术或逻辑运算结果的以种状态,主要分为状态标志和控制标志。如运算结果进位标志、溢出标志、中断标志等。
控制器
- 运算器只能完成运算,而控制器用于控制整个CPU的工作。指令格式:操作码+地址码
- 组成和特点:
1.指令寄存器(IR)特点:保存当前执行指令的代码。
2.程序计数器(PC)特点:指向下一条指令的地址,并且有自增功能。
3.地址寄存器(AR)特点:存放CPU访问的内存单元地址。
4.指令译码器(ID)特点:对指令进行译码。
-
寄存器组
寄存器组分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器。通用寄存器的用途由程序员决定。
分类 | 寄存器 |
---|---|
程序员可见 | 通用寄存器组、PSW、PC、AC |
程序员不可见 | IR、DR、AR |
CPU模型
1.1.3数据表示
- 二进制、八进制、十六进制等等。
- 单位换算
单位 表示 换算 位 bit b 1b=二进制的一位 字节 Byte B 1B=8bit 千字节 KB 1KB=B
兆字节 MB 1MB=KB 吉字节 GB 1GB=MB 太字节 TB 1TB=GB
定点数
- 小数点位置固定不变的数。分为纯整数(如:18)和纯小数(如:0.25)、
注意了!!!注意了!!!接下来的知识点特别重要,也特别难!!!
- 原码:二进制表示的码。最高位是符号位。0表示正数、1表示负数。
- 反码:正数的反码与原码相同,负数的反码是原码的符号为不变,其他位取反 。
- 补码:正数的补码与原码相同,负数的补码等于反码的末尾+1。
- 移码:补码符号位取反即可。
例题:若机器字长为8,给出十进制数-19的原码、反码、补码和移码。
表示方式 | 加减运算的特点 |
原码 | 零的表示不唯一;真值与机器码易转换;加减法运算复杂。 |
反码 | 零的表示不唯一;加减法运算稍复杂。 |
补码 | 零的表示唯一;加减法运算简单。 |
移码 | 符号位0为负,1为正;相同真值的移码和补码数值位相同,符号位相反; 移码进行加减法运算时得到的结果是真值的补码形式。 |
浮点数
- 小数点位置不固定的数。如:83.125
- 二进制的格式化:1011.10101=1.01110101×
- 二进制数N的一般形式:N=×M
E为阶码,决定二进制数的表示范围;M为尾数,决定二进制数的精度。
IEEE754标准
32位浮点数和64位浮点数
S | E | M |
1 | 8 | 23 |
1 | 11 | 52 |
其中32位浮点数:
- S是浮点数的符号位,占1位,在最高位,0表示正数,1表示负数。
- E是阶码,占8位,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏置常数127。(64位的加1023)
M是尾数,放在低位部分,占23位,小数点位置放在尾数域最高有效位的右边。
例题:利用IEEE754标准将数176.0625表示为单精度浮点数。
浮点数的加减法
1.求阶差并对阶。小阶向大阶看齐。
2.尾数求和。
3.规格化处。
4.舍入处理。在对阶段或对结果右规时,尾数的最低位将因移出而丢掉。 5.溢出判断。判断阶码是否溢出。对于32位浮点数,除去全0和全1的特殊情况,阶码E[1,254]。
1.1.4校验码
- 奇偶校验码:通过在编码中增加一位校验位,使编码中1的个数为奇数(奇校验)或偶数(偶校验)。
数据 | 奇校验 | 偶校验 |
10101010 | 101010101 | 101010100 |
01111111 | 0111111110 | 011111111 |
- 海明码:它是一种多重奇偶校验码,具有检错和纠错的功能。数据位n,校验位k的关系应满足:n+k+1≤
- 循环冗余校验码:是一种多项式编码,由左边数据位和右边校验位组成。广泛应用于数据链路层的错误检测。