系统分析师(1)- 计算机组成和与体系结构

计算机组成与体系结构(3-7分)

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

计算机组成结构 ⭐

image

模块 部件 功能说明
运算器 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)})\)

考点:

  1. 原码、反码存在+0、-0,所以表示范围更小;
  2. 补码/移码没有正负0,多出一个负数。定点小数补码可以取到-1,原码、反码取不到-1。
  3. 定点整数范围 除以 \(2^{n-1}\) -----> 定点小数范围

浮点数表示(2)⭐

公式:\(N = 尾数 \times 基数^{指数}\)(二进制 基数=2,尾数 为 纯小数)

存储结构:
image

特点:

    1. 一般尾数用补码,阶码用移码
    1. 阶码位数 → 决定表示范围,位数越多,范围越大
    1. 尾数位数 → 决定有效精度,位数越多,精度越高
    1. 浮点数加减【对阶】规则:
    • 对阶原则:小阶向大阶看齐(小数向大数看齐)
    • 实现方式:较小数的尾数右移,阶码增大;右移会损失尾数低位精度。
  • 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

    解:

    1. \(90\mathrm{H}=10010000\mathrm{B}\)(8位补码),最高位为1,代表负数。
    2. 补码求原码:补码减1,数值位取反
      补码:10010000
      减1 → 10001111
      数值位取反,符号不变 → 原码:11110000
    3. 原码\(11110000\)真值:\(2x=-112\)
    4. \(x=-112/2=-56\),选B。

    选项有正有负,说明 x 是 有符号数,所以要注意最高位为1,代表负数。

  • 例题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. 阶码部分:阶符1位+阶码值6位,共7位移码。7位移码真值范围 \(-2^{6}\sim 2^{6}-1\),最大阶码真值\(E_\text{max}=63\)。
    2. 尾数部分:数符1位+尾数8位,补码定点小数。
      • 补码小数可以取到最小值\(\boldsymbol{-1}\),最大值\(1-2^{-8}\)。
    3. 浮点数\(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})\)。

posted on 2026-10-11 17:59  中年二班  阅读(17)  评论(0)    收藏  举报