软考-软件设计师 知识点整理(一篇就过了 建议收藏)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、前言🚀🚀🚀
  • 二、正文☀️☀️☀️
    • 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 2n1

定点整数的范围怎么求呢?

我们以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 3164
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/772501.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mybatis实现动态sql

第一章、动态SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验&#xff0c;你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格&#xff0c;还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特…

关于虚拟机CentOS 7使用ssh无法连接(详细)

虚拟机CentOS 7使用ssh无法连接 猜测&#xff1a;可能是虚拟机软件的网关和和centos7的网关不同导致的问题。 首先打开CentOS7的终端, 输入ifconfig&#xff0c;查看一下系统的ip 打开虚拟机的虚拟网络编辑器, 查看一下网关, 发现确实不一样. 这里有两种方式, 要么修改虚…

104.二叉树的最大深度——二叉树专题复习

深度优先搜索&#xff08;DFS&#xff09;是一种常用的递归算法&#xff0c;用于解决树形结构的问题。在计算二叉树的最大深度时&#xff0c;DFS方法会从根节点开始&#xff0c;递归地计算左右子树的最大深度&#xff0c;然后在返回时更新当前节点所在路径的最大深度。 如果我…

gin项目部署到服务器并后台启动

文章目录 一、安装go语言环境的方式1.下载go安装包&#xff0c;解压&#xff0c;配置环境变量2.压缩项目上传到服务器并解压3.来到项目的根目录3.开放端口&#xff0c;运行项目 二、打包的方式1.在项目的根目录下输入以下命令2.把打包好的文件上传到服务器3.部署网站4.ssl证书 …

Web前端开发——HTML快速入门

HTML&#xff1a;控制网页的结构CSS&#xff1a;控制网页的表现 一、什么是HTML、CSS &#xff08;1&#xff09;HTML &#xff08;HyperText Markup Languaqe&#xff1a;超文本标记语言&#xff09; 超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大。除了…

vienna整流器过零畸变原因分析

Vienna整流器是一种常见的三电平功率因数校正&#xff08;PFC&#xff09;整流器&#xff0c;广泛应用于电源和电能质量控制领域。由于其高效率、高功率密度和低谐波失真的特点&#xff0c;Vienna整流器在工业和电力电子应用中具有重要地位。然而&#xff0c;在实际应用中&…

新手拍短视频的些许建议

1、尽早行动&#xff0c;拒绝完美主义&#xff0c;有手机就能上车&#xff0c;一开始别花太多时间在打磨细节上。总是要准备好了后再做&#xff0c;就总比别人慢一步&#xff0c;可能永远也追不上了&#xff1b; 2、坚持发&#xff0c;度过难熬的启动期就行&#xff0c;不要走…

比Proxmox VE更易用的免费虚拟化平台

之前虚拟化一直玩Proxmox VE&#xff0c;最近发现一个更易用的虚拟化软件CSYun&#xff0c;他与Proxmox VE类似&#xff0c;都是一个服务器虚拟化平台。它不像VMware ESXi那么复杂&#xff0c;对于个人使用者和中小企业是一个比较好的选择。 这个软件所在的网址为&#xff1a;…

安装 VisualSVN Server提示HTTP服务无法启动的问题解决

安装 VisualSVN Server 版本&#xff1a;VisualSVN-Server-5.4.0-x64 安装包在安装到一半的时候&#xff0c;弹窗提示&#xff1a;HTTP服务无法启动&#xff0c;网上找了一大堆&#xff0c;说是service里面更改用户为本地用户什么的都没用用&#xff0c;点右键也无法启动。 …

基于Java的壁纸网站设计与实现

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

Spring MVC 中 使用 RESTFul 实现用户管理系统

1. Spring MVC 中 使用 RESTFul 实现用户管理系统 文章目录 1. Spring MVC 中 使用 RESTFul 实现用户管理系统2. 静态页面准备2.1 user.css2.2 user_index.html2.3 user_list.html2.4 user_add.html2.5 user_edit.html 3. SpringMVC环境搭建3.1 创建module&#xff1a;usermgt3…

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded

解决mysql数据库连接报错&#xff1a;Authentication plugin ‘caching_sha2_password’ cannot be loaded OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open sha…

人脸重建迁移攻击FRTA:绕过各种未见过的面部识别系统

随着人脸识别系统在安全关键环境中的部署日益增多&#xff0c;威胁行为者正在开发针对各种攻击点的复杂攻击策略。在这些攻击策略中&#xff0c;面部重建攻击是一个主要的威胁。面部重建攻击的主要目的是创建伪造的生物特征图像&#xff0c;这些图像类似于存储的生物特征模板中…

vue中数组出现__ob__: Observer属性,导致不能正确使用问题解决

直接上图&#xff0c;如下图&#xff0c;数组中出现__ob__: Observer属性&#xff0c;导致无法取值。 解决方案为&#xff1a;JSON.parse(JSON.stringify(数组变量名))深拷贝数组&#xff0c;重新生成一个可枚举数组。 // 处理代码如let tempIds JSON.parse(JSON.stringify(i…

实现统计n个数以下质数的个数

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {int n 0;scanf("%d", &n);int sum 0;for (int i 1; i < n; i){for (int j 2; j < i; j) {if (i % j 0){sum;break;}}}printf("%d", n - sum-1);return 0; } n为输…

yum命令提示 错误:rpmdb: BDB0113 Thread/process 4153/139708200269632

一、报错信息 [rootDawn yum.repos.d]# yum clean all 错误&#xff1a;rpmdb: BDB0113 Thread/process 4153/139708200269632 failed: BDB1507 Thread died in Berkeley DB library 错误&#xff1a;db5 错误(-30973) 来自 dbenv->failchk&#xff1a;BDB0087 DB_RUNRECOVE…

记录通过Cloudflare部署属于自己的docker镜像源

引言 由于最近国内无法正常拉取docker镜像&#xff0c;然而找了几个能用的docker镜像源发现拉取回来的docker镜像不是最新的版本&#xff0c;部署到Cloudflare里Workers 和 Pages&#xff0c;拉取docker 镜像成功&#xff0c;故记录部署过程。 部署服务 登录Cloudflare后&…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs

一、自定义组件 1、自定义组件 自定义组件&#xff0c;最基础的结构如下&#xff1a; Component struct Header {build() {} } 提取头部标题部分的代码&#xff0c;写成自定义组件。 1、新建ArkTs文件&#xff0c;把Header内容写好。 2、在需要用到的地方&#xff0c;导入…

如视“VR+AI”实力闪耀2024世界人工智能大会

7月4日&#xff0c;2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;以下简称为“WAIC 2024”&#xff09;在上海盛大开幕&#xff0c;本届大会由外交部、国家发展和改革委员会、教育部等部门共同主办&#xff0c;围绕“以共商促共享 以善治促善智”主题&#xf…

算法力扣刷题 三十一【150. 逆波兰表达式求值】

前言 栈和队列篇。 记录 三十一【150. 逆波兰表达式求值】 一、题目阅读 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。 每个操作…