提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、前言🚀🚀🚀
- 二、正文☀️☀️☀️
- 1.进制转换
- 2.码制
- 3.浮点数表示
- 4.逻辑运算
- 5.奇偶校验
- 6.CRC循环冗余
- 7.海明校验码
- 8.CPU组成(重点)
- 9.寻址方式
- 10.CISC和RISC
- 11.流水线
- 12.输入输出技术
- 13.可靠性
- 14.性能指标
- 15.层次化存储
- 16.Cache
- 17.主存编址计算
一、前言🚀🚀🚀
小郑正在备考2024年下半年的中级软件设计师,所以打算开展一个软考备考专栏,在这里记录一下备考笔记以及习题,也希望大家能一起加入我们的软考备考之中,互相学习,一起进步。让我们快马加鞭,投入备考之中吧。
二、正文☀️☀️☀️
1.进制转换
以B、H来区分二进制,十进制
十六进制常用于地址编号,地址的格式会按多少个比特位来划分,一位二进制相当于一个比特位
按权展开法
该方法的核心思想是将一个数的每一位按照其位权(即该位所代表的数值在数制中的权重)进行展开,然后将所有位上的数值与其对应的位权相乘,并将所有乘积相加,最终得到的结果即为该数在十进制下的表示。
具体步骤
拆位:首先,将一个R进制数拆分为单独的每一位,从右到左依次排列。
转换:将每一位上的数值转换为十进制下的数值(对于十六进制中的A-F,需要转换为10-15)。
计算位权:确定每一位的位权。在R进制中,从右到左,每一位的位权分别是R^0, R^1, R^2, …,以此类推。
相乘并求和:将每一位上的数值与其对应的位权相乘,然后将所有乘积相加,得到的结果即为该数在十进制下的表示。
示例
二进制转十进制
假设有一个二进制数 10101(2),要将其转换为十进制数。
拆位:1 0 1 0 1
转换:这一步对于二进制来说不需要进行,因为二进制数只有0和1两种数值。
计算位权:从右到左,位权分别是 2^0, 2^1, 2^2, 2^3, 2^4。
相乘并求和:1×2^4 + 0×2^3 + 1×2^2 + 0×2^1 + 1×2^0 = 16 + 0 + 4 + 0 + 1 = 21(10)。
十六进制转十进制
假设有一个十六进制数 FF(16),要将其转换为十进制数。
拆位:F F
转换:将F转换为十进制中的15。
计算位权:从右到左,位权分别是 160, 161。
相乘并求和:15×161 + 15×160 = 240 + 15 = 255(10)。
注意事项
对于十六进制中的A-F等特殊字符,需要知道它们对应的十进制数值**(A=10, B=11, C=12, D=13, E=14, F=15)。**
短除法
余数从下往上记录
减法
2.码制
一、原码
原码是最简单的整数表示方法,直接使用二进制表示数值,并用最高位表示符号位(0表示正数,1表示负数)
示例:使用8位二进制表示,+3的原码为00000011,-3的原码为10000011。
数值0有两种表示方式:+0(00000000)和-0(10000000)。
二、反码
正数的反码即其原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反(0变1,1变0)。
示例:+3的反码为00000011(与原码相同),-3的反码为11111100(对原码10000011除符号位外 取反)。
数值0也有两种表示方式:+0(00000000)和-0(11111111)。
三、补码
正数的补码即其原码;负数的补码是在原码的基础上,除符号位外,其他各位按位取反
而后末位+1(若有进位则产生进位)。
示例:+3的补码为00000011(与原码相同),-3的补码为11111101(对原码10000011除符号位外取反后+1)。
特点:
数值0只有一种表示方式:[+0]补 = [-0]补 = 00000000。
补码能够表示的范围比原码和反码稍宽,能多表示一个负数。
四、移码
移码是一种编码方式,主要用于浮点数的阶码表示。无论正数还是负数,移码都是将该数的补码的首位(符号位)取反得到的。
示例:若某个数的补码为01011011(正数),则其移码为11011011;若补码为11011011(负数),则其移码为01011011。
特点:
移码的主要用途是在浮点数的指数表示中,用作偏移值。
移码能够方便地判断阶码的大小,因为正数的移码表示比负数的移码表示大。
移码只能表示整数。
以原码为例,当n=3的时候,会有 000 001 010 011 100 101 110 111 八种情况,第一位表示符号位,-0没有意义,所以要减一,所以数码的个数就是就是
2
n
−
1
2^n-1
2n−1
定点整数的范围怎么求呢?
我们以11为例,11怎么变成二进制呢? 11 + 1 补整 =>100 = 2^2 因为加1 所以要减1
也就得出结果了
因为补码多了个人为规定,所以-0也有意义,数码个数就是 2 n 2^n 2n
定点小数的范围怎么求?
以n=3 为例子,0.11 + 0.01 = 1.00 所以0.11 = 1.00 - 2^-2 即可得出范围
例题:
假设n = 3 那么ABCD 分别为 8 -8 4 -4 因为补码的-0有特殊意义,可以表示负数 那么二进制的100 = -4 (把100看成整体)
补码“90H”转换为二进制是1001 0000
原码 —> 反码(除符号位,其余按位取反)—>补码 (反码末位加1)
1001 0000 转换为原码就是 10001111(反码)---->11110000(原码)
这里有个陷阱 首位是符号位 所以是个负数,这里已经可以得出正确答案了。01110000 = 112
2x = 112 x = 56 因为是负数,所以就是-56
3.浮点数表示
浮点数表示: N = 尾数*基数^指数
特点: 1.一般尾数用补码,阶码用移码
2.阶码的位数决定数的表示范围,位数越多范围越大
3.尾数的位数决定数的有效准度,位数越多精度越高
4.对阶时,小数向大数看齐
5.对阶是通过较小数的尾数右移实现的
例题:
答案为D
4.逻辑运算
运算符优先级:算术 > 关系 > 逻辑 > 赋值 > 逗号
算术运算符:+加 -减 *乘 /除 %求余 ++自增 --自减
关系运算符:> 大于 <小于 >= 大于等于 <=小于等于 == 等于 != 不等于
逻辑运算符:&&逻辑与 ||逻辑或 !逻辑非
位运算符:<<左移 >>右移 ~取反 |或 &与 ^异或
赋值运算符:=赋值 +=、-=、*=、=复合赋值符
条件运算符:?=
逗号运算符:,
指针运算符:*间接 &取地址
求字节运算符:sizeof
强制类型转换运算符:类型
分量运算符:·成员 ->指向
下标运算符:[ ]
5.奇偶校验
为什么需要校验码?
假如今天7.4号是星期六,不用上班,但是老板说7.4号是星期一,快来上班,此时7.4(星期六)增加一位校验位来增强数据的完整性和可靠性。
A.、若所有奇数位出错:在这种情况下,如果所有奇数位都出错(例如,从原来的0变为1,或从1变为0),这将改变数据字中“1”的总数。然而,由于是所有奇数位同时出错,这种变化可能会恰好维持“1”的总数为奇数(如果原始数据字中“1”的数量为偶数且校验位为1,则所有奇数位翻转后,“1”的数量仍然为奇数),或者从奇数变为偶数(如果原始数据字中“1”的数量为奇数且校验位为0)。因此,这种错误可能无法被检测到,更不用说纠正了。所以A选项错误。
C、若有奇数个数据位出错:在这种情况下,数据字中“1”的总数将发生变化(无论是从奇数变为偶数,还是从偶数变为奇数),这将导致整个数据字(包括校验位)中“1”的总数不再是奇数。因此,奇校验位将指示存在错误。然而,奇校验只能检测错误,不能纠正错误。所以C选项正确。
奇偶校验,可检查1位(奇数位)的错误,不可纠错
6.CRC循环冗余
7.海明校验码
海明校验可检错,可纠错
2
r
>
=
m
+
r
+
1
2^r >= m + r + 1
2r>=m+r+1
m:信息位 r :校验位
例题:
其实这道题就是找规律,软件设计师不考海明校验实际的编码
题目中说32位的数据,所以m = 5 根据 2 r > = m + r + 1 2^r >= m + r + 1 2r>=m+r+1得 第一个空的答案是6
第二个空D5 的位序是10 所以就是10 = 8+2 找出位序是8和2即可得出答案
三种校验码的区别如下:
8.CPU组成(重点)
9.寻址方式
例题:
在机器指令的地址字段中,直接指出操作数本身的寻址方式称为(C
)。
A、隐含寻址
B、寄存器寻址
C、立即寻址
D、直接寻址
根据题目的操作数本身可知,立即寻址
如果是操作数的地址,分直接/间接寻址
10.CISC和RISC
以下关于RISC(精简指令系统计算机)技术的叙述中,错误的是(B
)
A、指令长度固定、指令种类尽量少
B、指令功能强大、寻址方式复杂多样
C.增加寄存器数目以减少访存次数、
D、用硬布线电路实现指令解码,快速完成指令译码
11.流水线
这里的流水线不是进厂打工的流水线哦(博主在上学期间也有过兼职的经历,当时小郑去的是一家快递分拣的,哎,属于是提前进厂了)
实践公式中的k就是执行的步数,图中是3步,所以k=3
最大吞吐率其实就是流水周期的倒数
例题:
下列关于流水线方式执行指令的叙述中,不正确的是(A
)
A、流水线方式可提高单条指令的执行速度
B、流水线方式下可同时执行多条指令
C、流水线方式提高了各部件的利用率
D、流水线方式提高了系统的吞吐率
将一条指令的执行过程分解为取指、分析和执行三步,按照流水方式执行,若取指时间t取指=4△t、分析时间t分析=2At、执行时间t执行=3At则执行完100条指令,需要的时间为(D
)t
A、200
B、300
C、 400
D、405
12.输入输出技术
程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/0能力不高,严重影响CPU的利用率。
程序中断方式:与程序控制方式相比,中断方式因为CPU无需等CPU与数据传物并行待而提高了传输请求的响应速度。
DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。
DMA方式比程序控制方式与中断方式都高效。(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知!/0接口开始DMA传输。)
理解小妙招
CPU可以理解为老师 老师的思路很快,即CPU响应快
内存可以理解为老师的知识储备
外存可以理解为学生
当我们使用程序控制(查询)方式的时候,相当与老师在上课的时候,一个一个问学生,这道题听懂了吗?只有每一个同学都听到懂了,才会接着讲。这样很浪费时间(严重影响CPU的利用率)
中断处理过程:
CPU无需等待也不必查询I/0状态。
√ 当I/0系统准备好以后,发出中断请求信号通知CPU;
CPU接到中断请求后,保存正在执行程序的现场(保存现场)打断的程序当前位置即为断点;
(通过中断向量表)转入I/0中的服务程序的执行,完成I/0系统的数据交换;
返回被打断的程序继续执行(恢复现场)。
例题:
计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和DMA方式等。当采用()方式时,不需要CPU执行程序指令来传送数据。(D
)
A.中断
B.程序查询
C.无条件传送
D. DMA
计算机运行过程中,遇到突发事件,要求CPU暂时停止正在运行的程序转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(B
),其处理过程中保存现场的目的是(C
)。
A阻塞
B中断
C动态绑定
D 静态绑定
A防止丢失数据
B 防止对其他部件造成影响
C返回去继续执行原程序
D 为中断处理程序提供数据
13.可靠性
例题:
某系统由3个部件构成,每个部件的千小时可靠度都为R,该系统的千小时可靠度为(1-(1-R)2)R,则该系统的构成方式是(C
)
A、3个部件串联
B、3个部件并联
C、前两个部件并联后与第三个部件串联
D、第一个部件与后两个部件并联构成的子系统串联
14.性能指标
主频 : 可以理解为1秒有多少个脉冲
CPU时钟周期: 主频的倒数 可以理解为每一次脉冲中表示多少秒,会影响运算速度
MIPS=指令条数/(执行时间x
1
0
6
10^6
106)=主频/CPI=主频XIPC
MFLOPS=浮点操作次数/(执行时间x
1
0
6
10^6
106)
平均每条指令的平均时钟周期个数(CPl,clockperinstruction)
每(时钟)周期运行指令条数(IPC,instructionperclock) (用指定总数/总时间)
百万条指令每秒(MIPS,MillionInstructions Per Second)
每秒百万个浮点操作(MFLOPS,Million Floating-point Operations per Second)
响应时间(RT,ResponseTime)
(1)平均CPI 其实就是加权平均数 假设有100条指令 ( 435 + 245 + 6*20 ) / 100 = 3.5
所以执行一个指令,平均需要3.5个时钟周期
(2)IPS = 多少条指令每秒
所以指令数量/总时间
15.层次化存储
1.存储器位置 内存&外存
2、存取方式
(1)按内容存取:
相联存储器(如Cache)
(2)按地址存取
随机存取存储器(如内存)
顺序存取存储器(如磁带)
直接存取存储器(如磁盘)
3、工作方式
(1)随即存取存储器RAM(如内存DRAM)掉电丢失
(2)只读存储器ROM(如BIOS)掉电保留
例题:
CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为(C
)。
A、数据局部性
B、指令局部性
C、空间局部性
D、时间局部性
在微机系统中,BIOSS(基本输入输出系统)保存在(A
)中
A、主板上的ROM
B、CPU的寄存器
C、主板上的RAM
D、虚拟存储器
16.Cache
在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)
主存与Cache之间的地址映射由硬件直接完成。
例题:
以下关于Cache(高速缓冲存储器)的叙述中,不正确的是(A
)
A、Cache 的设置扩大了主存的容量
B、 Cache 的内容是主存部分内容的拷贝
C、Cache 的命中率并不随其容量增大线性地提高
D、Cache 位于主存与 CPU 之间
在程序执行过程中,高速缓存(Cache)与主存间的地址映射由(D
)
A、操作系统进行管理
B、存储管理软件进行管理
C、程序员自行安排
D、硬件自动完成
主存与Cache的地址映射方式中,(A
)方式可以实现主存任意一块装入Cache中任意位置,只有装满才需要替换。
A、全相联
B、直接映射
C组相联
D、串并联
17.主存编址计算
编址内容
按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字
按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。
例题:
内存按字节编址,地址从A0000H到CFFFFH的内存,共有(B
)字节,若用存储容量为64Kx8bit的存储器芯片构成该内存空间,至少需要(B
)片
A、80KB B、96KB C、160KB D、192KB
A、2 B、3 C、5 D、8
存储单元个数=最大地址-最小地址+1
总容量=存储单元个数*编址内容(字节)
总容量: 单位芯片容量*总片数
CFFFFH +1 ----> D0000H
D0000H - A0000H = 30000H
30000H 转为二进制
3
∗
1
6
4
3*16^4
3∗164