软考中级软件设计师备考指南(一):计算机系统基础与数据表示
作为软考中级的核心科目,《软件设计师》考试中 “计算机系统知识” 模块占比约 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 年考题)。
小结:核心考点与避坑指南
- 必背考点:冯诺依曼五大部件、CPU 组成(PC 功能)、补码特点、IEEE754 结构、海明码公式;
- 易错点:CPU 不含系统总线、PC 指向下一条指令地址、补码无双零、IEEE754 尾数隐含 1;
- 解题技巧:遇到 “CPU 组件” 题用排除法(排除内存 / 总线),遇到 “补码运算” 先转补码再计算,遇到 “海明码” 直接套公式。
下一篇我们将聚焦 “计算机体系结构”,讲解 Flynn 分类法、指令系统、流水线技术这些更具难度的考点,敬请关注!