当前位置: 首页 > news >正文

软考中级软件设计师备考指南(一):计算机系统基础与数据表示

        作为软考中级的核心科目,《软件设计师》考试中 “计算机系统知识” 模块占比约 10%,其中硬件组成与数据表示是入门基础,也是单选题的高频考点(年均 6 题,分值 6 分)。但该模块知识点细碎,平均正确率仅 50%,需结合 “原理 + 例题” 系统突破。

目录

一、冯诺依曼结构:计算机硬件的 “骨架”

二、CPU 核心组件:理解 “指令执行” 的关键

2.1 运算器:负责 “算” 的部件

2.2 控制器:负责 “控” 的部件

2.3 寄存器可见性

三、数据表示:从进制到浮点数的 “坑点”

3.1 进制转换:记住 “按权展开” 和 “分组转换”

3.2 定点数编码:补码是 “重中之重”

3.3 浮点数 IEEE754 标准:32 位结构是 “必考点”

四、校验码:奇偶校验与海明码的 “小计算”

小结:核心考点与避坑指南


一、冯诺依曼结构:计算机硬件的 “骨架”

软考对硬件组成的考察核心围绕冯诺依曼五大部件展开,需明确部件功能及 CPU 的集成逻辑:

  • 五大核心部件:运算器(算)、控制器(控)、存储器(存)、输入设备(入)、输出设备(出),这是所有计算机硬件的基础框架。
  • CPU 的本质:运算器 + 控制器的集成体,相当于计算机的 “大脑”,需注意:系统总线、内存、硬盘等均不属于 CPU 内部组件(高频易错点,2023 年曾考 “CPU 不含哪类组件”,答案为系统总线)。
  • 存储器分类
    • 内部存储器(内存):速度快(纳秒级)、容量小(GB 级),临时存程序 / 数据,断电失活;
    • 外部存储器(硬盘 / U 盘):速度慢(毫秒级)、容量大(TB 级),长期存储,断电保活。

二、CPU 核心组件:理解 “指令执行” 的关键

        CPU 的内部结构决定了指令如何被执行,软考常考 “寄存器功能” 和 “指令执行流程”,需重点掌握:

2.1 运算器:负责 “算” 的部件

核心组件及功能:

  • ALU(算术逻辑单元):实际执行加减乘除(算术运算)、与或非(逻辑运算)的 “计算器”;
  • AC(累加器):给 ALU 提供运算数据,同时暂存结果;
  • PSW(程序状态字):记录运算状态,比如是否进位、是否溢出(比如 127+1 在 8 位补码中会溢出,PSW 会标记)。

2.2 控制器:负责 “控” 的部件

核心组件及功能(指令执行的 “指挥中心”):

  • PC(程序计数器):软考高频考点!作用是 “指向下一条指令的地址”,且执行后自动递增(比如指令长度为 2 字节,PC 就 + 2)。考题常问 “哪个寄存器提供下一条指令地址”,答案必是 PC;
  • IR(指令寄存器):暂存当前正在执行的指令(注意:IR 存的是指令本身,不是地址,别和 PC 混淆);
  • 指令译码器:解析 IR 中的 “操作码”,判断该做加法还是减法。

2.3 寄存器可见性

  • 程序员可见:PC、AC、PSW、通用寄存器(写代码时能操作);
  • 程序员不可见:IR、AR(地址寄存器)、DR(数据缓冲寄存器)(硬件底层用,代码无法直接操作)。

三、数据表示:从进制到浮点数的 “坑点”

        计算机内部只认二进制,因此 “进制转换”“定点数编码”“浮点数 IEEE754 标准” 是必考内容,且易混淆。

3.1 进制转换:记住 “按权展开” 和 “分组转换”

  • 二进制转十进制:按权展开,比如 1011B = 1×2³+0×2²+1×2¹+1×2⁰ = 11D;
  • 二进制转八 / 十六进制:分组转换(3 位转 1 位八进制,4 位转 1 位十六进制),比如 101100B 拆为 101 100 → 54Q,拆为 10 1100(补前导 0 为 0010 1100)→ 2CH;
  • 单位换算:1B=8bit,1KB=1024B,1MB=1024KB(注意:软考中存储单位均为 1024 进制,不是 1000)。

3.2 定点数编码:补码是 “重中之重”

定点数(整数 / 小数)有 4 种编码:原码、反码、补码、移码,软考核心考补码的特点和转换

  • 原码:符号位(0 正 1 负)+ 绝对值,缺点是有 “+0(0000)” 和 “-0(1000)” 两种零,运算复杂;
  • 反码:正数和原码一样,负数是 “符号位不变,数值位取反”,同样有双零问题;
  • 补码:软考高频!解决了双零和运算问题:
    • 正数补码 = 原码;
    • 负数补码 = 反码 + 1(快速求法:从最低位找第一个 1,该位及右边不变,左边取反);
    • 特点:零唯一(0000)、减法转加法(A-B = A+(-B) 的补码)、符号位参与运算(硬件只需加法器);
  • 移码:补码符号位取反,用于浮点数的阶码(表示范围)。

例题:8 位机器字长,求 - 19 的补码?步骤:19 的二进制是 10011 → 8 位原码 10010011 → 反码 11101100 → 补码 11101101(或用快速法:10010011 从右找第一个 1 是第 0 位,右边不变,左边取反→11101101)。

3.3 浮点数 IEEE754 标准:32 位结构是 “必考点”

浮点数类似科学计数法(比如 123.45 = 1.2345×10²),二进制中表示为 “1.M × 2^E”,软考核心考 32 位单精度格式:

  • 结构:1 位符号位(S,0 正 1 负)+8 位阶码(E)+23 位尾数(M);
  • 阶码 E:不是直接存指数,而是存 “指数 + 127”(偏置常数),比如指数是 7,E=7+127=134(二进制 10000110);
  • 尾数 M:只存小数部分!因为 “1.M” 中的 “1” 是隐含的(节省 1 位空间),比如尾数是 011000...,实际是 1.011000...;
  • 转换公式:数值 = (-1)^S × (1+M) × 2^(E-127)。

例题:32 位浮点数 16 进制 0x43600000 转十进制?步骤:16 进制转二进制→0100 0011 0110 0000... → S=0(正),E=10000110(134),指数 = 134-127=7,M=011000... → 数值 = 1.011 × 2^7 = 1100000B = 96D。

四、校验码:奇偶校验与海明码的 “小计算”

数据传输会出错,校验码用于检错 / 纠错,软考考 2 类:

  • 奇偶校验:加 1 位校验位,使 1 的个数为奇(奇校验)或偶(偶校验),只能检 1 位错,无法纠错;
  • 海明码:能检错也能纠错,核心公式是 “n+k+1 ≤ 2^k”(n 是数据位,k 是校验位)。比如 8 位数据,求 k?代入得 8+k+1 ≤2^k → k=4(2^4=16 ≥13),所以至少 4 位校验位(2022 年考题)。

小结:核心考点与避坑指南

  1. 必背考点:冯诺依曼五大部件、CPU 组成(PC 功能)、补码特点、IEEE754 结构、海明码公式;
  2. 易错点:CPU 不含系统总线、PC 指向下一条指令地址、补码无双零、IEEE754 尾数隐含 1;
  3. 解题技巧:遇到 “CPU 组件” 题用排除法(排除内存 / 总线),遇到 “补码运算” 先转补码再计算,遇到 “海明码” 直接套公式。

下一篇我们将聚焦 “计算机体系结构”,讲解 Flynn 分类法、指令系统、流水线技术这些更具难度的考点,敬请关注!

http://www.dtcms.com/a/479535.html

相关文章:

  • 陕西建设执业注册中心网站天津东丽做网站
  • 怎么做下载类的网站吗未注册网站
  • IDEA和GIT实现cherry pick拣选部分变更到新分支
  • 网站建设开源模板婚宴网站源码
  • 一份软件系统性能需求文档示例
  • 淘宝客做自已的网站视觉设计案例
  • 网站产品链接怎么做定兴做网站的
  • 儿童 网站 设计欣赏程家桥街道网站建设
  • Kubernetes 中核心概念的英文单词/术语列表(附音标)
  • 学习笔记--事务管理
  • 芜湖经济开发区网站普陀区网站建设公司哪家好
  • 新浪做网站网站布局设计怎么写
  • 基于SpringBoot的中草药销售管理系统49rn8q0x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • wordpress做学校网站wordpress主题查看
  • 做网站的时候怎么设置背景拼多多怎么申请开店
  • JWT(JSON Web Token)完全指南
  • 网站建设?首选百川互动网赌网站国外空间
  • 手机号+平台ID和appsecret的简单签名算法
  • 跨平台 移动网站开发安徽建工集团网站
  • 做网站需要注意什么问题工程建设公司网站
  • 《Muduo网络库:实现EventLoop事件循环》
  • 企业网站推荐微信公众号人工服务电话
  • 国家电网智能车载终端TBOX
  • 南宁网站建设升上去proxy网站
  • chatgpt-codex使用显示Error starting conversation
  • 搜狐网站建设的建议网站开发工资多少
  • Java中关于HashMap的元素遍历的顺序问题
  • 南通江苏网站建设建设淘宝网站的市场分析
  • 网站备案容易通过吗深入挖掘wordpress
  • 网站程序基础wordpress安装无法连接数据库