系统分析师(1)- 计算机组成和与体系结构
计算机组成与体系结构(3-7分)
| 知识点 | 考点星级 |
|---|---|
| 计算机组成结构 | ⭐ |
| 浮点数表示 | ⭐ |
| FLynn分类法 | ⭐ |
| CISC与RISC | ⭐⭐⭐ |
| 流水线技术 | ⭐⭐⭐ |
| 存储系统-cache-磁盘 | ⭐⭐⭐⭐ |
| 校验码 | ⭐ |
| 可靠性 | ⭐ |
| 总线 | ⭐⭐ |
| 嵌入式系统 | ⭐ |
计算机组成结构 ⭐

| 模块 | 部件 | 功能说明 |
|---|---|---|
| 运算器 | ALU 算术逻辑单元 | 数据的算术运算和逻辑运算 |
| AC 累加寄存器 | 通用寄存器,为ALU提供一个工作区,用在暂存数据 | |
| DR 数据缓冲寄存器 | 写内存时,暂存指令或数据 | |
| PSW 状态条件寄存器 | 存状态标志与控制标志 | |
| 控制器 | PC 程序计数器 | 存储下一条要执行指令的地址 |
| IR 指令寄存器 | 存储即将执行的指令 | |
| ID 指令译码器 | 对指令中的操作码字段进行分析解释 | |
| AR 地址寄存器 | 保存当前CPU所访问的内存地址 |
1、CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在()中
A.程序计数器(PC)
B.累加器 (AC) ✅
C.指令寄存器 (IR)
D.地址寄存器 (AR)
考点:累加器AC,存放运算操作数与运算结果
2、执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即()的内容送到地址总线上
A.指令寄存器(IR)
B.通用寄存器(GR)
C.程序计数器(PC) ✅
D.状态寄存器(PSW)
考点:PC程序计数器,保存下一条指令地址,取指阶段送入地址总线
浮点数表示(1) ⭐
进制转换 - 必考
| 进制 | 标识符号 | 示例 |
|---|---|---|
| 二进制 | 0b | 0b0011 |
| 十六进制 | 0x / H | 0x18F、18FH |
备注:题目若无特殊说明,默认是十进制。
-
机器数:内存仅存储0/1比特串,无额外标记位;是解析规则(编译器)决定这串01代表什么数。
signed/unsigned:编译器编译期根据变量类型生成不同机器指令;CPU执行指令,决定最高位是否作为符号位。- 定点整数 / 定点纯小数:由运算指令约定小数点固定位置。
- 浮点数(float/double):遵循IEEE754,比特串拆分为符号位、阶码、尾数;尾数为定点纯小数。
计算机内部全程二进制;十进制仅在print输出时,由程序转为文本供人阅读。
-
变量选型原则
- 仅存整数:整型 int / long,运算快、无精度丢失。
- 小数、允许微小误差(科学计算):float / double(二进制浮点数,存在精度损失)。
- 精确小数(账目金额):禁止二进制浮点数;使用整数存最小单位模拟定点,或十进制专用类型(BigDecimal、C# decimal、MySQL DECIMAL)。
-
原码、反码、补码、移码
前提:都是机器数,内存只存01比特串,无额外类型标记。最高位默认符号位:0正,1负。
- 原码:符号位+真值绝对值。第1位是符号位,后面二进制代表真值。
- 反码:正数:反码=原码;负数:**符号位不变*,数值位按位取反。仍存在正负0。
- 补码(CPU实际使用):正数补码=原码;负数=反码+1。唯一0,减法变加法,硬件简单。
✅CPU只有加法器,没有减法器。
计算A - B等价于A + (-B的补码)。 - 移码(偏置码,浮点数阶码用):真值+偏移量。正负号判断直观,用于浮点数阶码比较大小。
✅考点:同一个真值,移码和补码仅仅符号位相反,其余位完全一样。
移码 = 补码 符号位 取反,其余照抄
例:真值 - 5,8 位
补码:11111011
移码:01111011
只有最高位反过来。
✅考点:计算机内部整数运算使用补码;浮点数阶码用移码,尾数用补码。
-
\(\text{原码} \xrightarrow{\text{按位取反 }+1} \text{补码} \xrightarrow{\text{符号位取反}} \text{移码}\)
-
定点数 范围 (n位机器数,含符号位)
| 码制 | 定点整数 | 定点小数 |
|---|---|---|
| 原码 | \(-(2^{n-1}-1) \sim +(2^{n-1}-1)\) | \(-(1-2^{-(n-1)}) \sim +(1-2^{-(n-1)})\) |
| 反码 | \(-(2^{n-1}-1) \sim +(2^{n-1}-1)\) | \(-(1-2^{-(n-1)}) \sim +(1-2^{-(n-1)})\) |
| 补码 | \(-2^{n-1} \sim +(2^{n-1}-1)\) | \(-1 \sim +(1-2^{-(n-1)})\) |
| 移码 | \(-2^{n-1} \sim +(2^{n-1}-1)\) | \(-1 \sim +(1-2^{-(n-1)})\) |
考点:
- 原码、反码存在+0、-0,所以表示范围更小;
- 补码/移码没有正负0,多出一个负数。定点小数补码可以取到
-1,原码、反码取不到-1。- 定点整数范围
除以\(2^{n-1}\) -----> 定点小数范围
浮点数表示(2)⭐
公式:\(N = 尾数 \times 基数^{指数}\)(二进制 基数=2,尾数 为 纯小数)
存储结构:

特点:
-
- 一般尾数用补码,阶码用移码
-
- 阶码位数 → 决定表示范围,位数越多,范围越大
-
- 尾数位数 → 决定有效精度,位数越多,精度越高
-
- 浮点数加减【对阶】规则:
- 对阶原则:小阶向大阶看齐(小数向大数看齐)
- 实现方式:较小数的尾数右移,阶码增大;右移会损失尾数低位精度。
-
5.例子:
\(A=0.101\times2^{3}\) ,\(B=0.110\times2^{1}\)- A 的阶:3(大阶)
- B 的阶:1(小阶)
B 是小阶,要向 A 的大阶看齐:阶从 1 → 3,阶\(+2\)。
根据科学计数法:指数\(+2\),尾数就要右移 2 位
\(B=0.110\times2^1 = 0.\underline{00}110\times2^3\)现在 A、B 阶码相同,就可以尾数相加:(小数点对齐,右边补0)
\(0.101\times2^3 + 0.00110\times2^3 = (0.101\underline{000}+0.00110)\times2^3\)
注意:不能大阶向小阶对齐,否则尾数左移丢失高位,数值严重错误。
原理:浮点加减法,两个数字阶码不一样,必须把阶调成一样才能加/减。
小阶 = 指数更小;大阶 = 指数更大。
✅尾数右移:丢掉低位,仅损失少量精度(可接受)
❌尾数左移:丢失高位,直接改变数字大小(不可接受)
-
例题1:如果“\(2x\)”的补码是\(\boldsymbol{90H}\),那么\(x\)的真值是()
A.72 B.-56 C.56 D.111解:
- \(90\mathrm{H}=10010000\mathrm{B}\)(8位补码),
最高位为1,代表负数。 - 补码求原码:补码减1,数值位取反
补码:10010000
减1 → 10001111
数值位取反,符号不变 → 原码:11110000 - 原码\(11110000\)真值:\(2x=-112\)
- \(x=-112/2=-56\),选B。
选项有正有负,说明 x 是
有符号数,所以要注意最高位为1,代表负数。 - \(90\mathrm{H}=10010000\mathrm{B}\)(8位补码),
-
例题2:设16位浮点数,其中阶符1位、阶码值6位,数符1位、尾数8位,若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是()
A: \(-2^{64}\sim(1-2^{-8}) 2^{64}\)
B: \(-2^{63}\sim(1-2^{-8}) 2^{63}\)
C: \(-2^{64}\sim(1-2^{-8}) 2^{64}\)
D: \(-(1-2^{-8}) 2^{63}\sim(1-2^{-8}) 2^{63}\)解:
- 阶码部分:阶符1位+阶码值6位,共7位移码。7位移码真值范围 \(-2^{6}\sim 2^{6}-1\),最大阶码真值\(E_\text{max}=63\)。
- 尾数部分:数符1位+尾数8位,补码定点小数。
- 补码小数可以取到最小值\(\boldsymbol{-1}\),最大值\(1-2^{-8}\)。
- 浮点数\(N=M\times 2^E\)
- 最小负数:\(M=-1,E=63\),得到\(-1\times 2^{63}=-2^{63}\)
- 最大正数:\(M=1-2^{-8},E=63\),得到\((1-2^{-8})2^{63}\)
范围:\(\boldsymbol{-2^{63}\sim(1-2^{-8}) 2^{63}}\),选B。
考点:尾数补码定点小数可以取-1;尾数如果是原码,负数最小只能到\(-(1-2^{-n})\)。
浙公网安备 33010602011771号