提示词:
这是一份计算机组成原理课程的课件,我需要你帮我整理出一份期末考试复习资料,尽可能详细,这部分比较困扰我
声明:本文由ChatGPT 5.2 大模型生成!
个人仅做搬运处理!暂未对内容正确性进行检查!
这里写目录标题
-
- 1)本章你到底要掌握什么(按课件"重点难点")
- 2)数据在机器里的"分类框架"(理解题常考)
- 3)进制与编码(常规送分题)
-
- [3.1 进制转换(会做即可)](#3.1 进制转换(会做即可))
- [3.2 BCD 与 ASCII(会考概念/简单编码)](#3.2 BCD 与 ASCII(会考概念/简单编码))
- 4)定点数表示(你必须非常熟)
-
- [4.1 原码/反码/补码(带符号整数的核心是补码)](#4.1 原码/反码/补码(带符号整数的核心是补码))
- [4.2 变形补码(双符号位)------专门为"溢出判断/中间结果"服务](#4.2 变形补码(双符号位)——专门为“溢出判断/中间结果”服务)
- 5)定点数加减与溢出(高频大题)
-
- [5.1 补码加减基本规则(做题口诀)](#5.1 补码加减基本规则(做题口诀))
- [5.2 溢出判断(你必须会三种说法,考试爱换问法)](#5.2 溢出判断(你必须会三种说法,考试爱换问法))
-
- [方法A:同号加异号出 ⇒ 溢出(最常用)](#方法A:同号加异号出 ⇒ 溢出(最常用))
- 方法B:符号位的"进位异或"判断(硬件视角)
- [方法C:变形补码 Ss1/Ss2 判断](#方法C:变形补码 Ss1/Ss2 判断)
- 6)移位运算(定点乘除、对阶都会用)
- [7)定点乘法(Booth 算法是核心考点)](#7)定点乘法(Booth 算法是核心考点))
-
- [7.1 为什么需要 Booth](#7.1 为什么需要 Booth)
- [7.2 Booth 规则(必背表)](#7.2 Booth 规则(必背表))
- [7.3 Booth 做题流程(按寄存器 A、Q...来)](#7.3 Booth 做题流程(按寄存器 A、Q…来))
- 8)定点除法(知道"上商次数、溢出点")
- [9)浮点数 IEEE 754(你说最困扰的重点来了)](#9)浮点数 IEEE 754(你说最困扰的重点来了))
-
- [9.1 IEEE 754 单精度结构(SP,float)](#9.1 IEEE 754 单精度结构(SP,float))
- [9.2 规格化数、非规格化数、0、∞、NaN(必背判定表)](#9.2 规格化数、非规格化数、0、∞、NaN(必背判定表))
- 10)浮点加减运算(期末最爱出的"过程题")
-
- [10.1 浮点加减六步模板(强烈建议你背)](#10.1 浮点加减六步模板(强烈建议你背))
- [10.2 课件例题(你要能复现)](#10.2 课件例题(你要能复现))
- [10.3 "附加位 Guard/Round"为什么必须有(常考理解题)](#10.3 “附加位 Guard/Round”为什么必须有(常考理解题))
- 11)舍入(浮点题经常考最后一步)
- 12)数据存储:大小端与对齐(概念题+小计算)
- 13)高频易错点(老师很爱拿来出判断/选择)
-
- [13.1 C 语言整数类型转换与比较陷阱](#13.1 C 语言整数类型转换与比较陷阱)
- [13.2 浮点运算不满足结合律](#13.2 浮点运算不满足结合律)
- 期末"最该刷"的题型清单(按得分效率排序)
下面给你整理一份**《计算机组成原理 · 第二章:数据的机器级表示与处理》期末复习资料(偏"考点 + 做题法")**。
1)本章你到底要掌握什么(按课件"重点难点")
课件明确的重点难点包括:进制转换、定点数原码/反码/补码、整数加减与溢出判断、补码乘法(Booth)、IEEE754 单精度转换、浮点加减运算过程。
2)数据在机器里的"分类框架"(理解题常考)
机器里数据大类:
- 数值数据:无符号整数、带符号整数(补码)、浮点数
- 非数值数据 :逻辑数(位串)、ASCII/BCD 等字符编码
课件强调:计算机内部所有信息最终都是 0/1 编码,并区分"真值 vs 机器数"的概念。
3)进制与编码(常规送分题)
3.1 进制转换(会做即可)
- 十进制 → 二进制:整数"除 2 取余倒序";小数"乘 2 取整顺序"
- 二进制 → 十六进制:4bit 一组
- 常见要熟:210=1024,216=65536,2^31=2147483648
3.2 BCD 与 ASCII(会考概念/简单编码)
- 8421 BCD:4 位表示 1 位十进制;压缩/非压缩 BCD 的区别(4 位 vs 8 位)。
- ASCII:7 位编码,数字/大小写字母范围记忆(课件给了 0-9、A-Z、a-z 的十六进制区间提示)。
4)定点数表示(你必须非常熟)
定点数核心:小数点位置固定,常见两类:
- 定点整数(小数点在最右)
- 定点小数(小数点在符号位之后)
4.1 原码/反码/补码(带符号整数的核心是补码)
补码范围(必背)
n 位补码表示范围:
-2\^{n-1} \\le N \\le 2\^{n-1}-1
课件在范围表里给了例子(8 位:-128~127;16 位:-32768~32767)。
补码求相反数(必会)
"求 -X 的补码":按位取反 + 末位加 1(补码取负规则)。
4.2 变形补码(双符号位)------专门为"溢出判断/中间结果"服务
课件定义:变形补码是双符号位 Ss1、Ss2,用于存放可能溢出的中间结果(Ss1 为真符)。
考试常问:为什么要双符号位?
因为定点加减的中间结果可能超出 n 位补码范围,但在变形补码中能保留"符号与最高数值位",从而判断是否溢出。
5)定点数加减与溢出(高频大题)
5.1 补码加减基本规则(做题口诀)
- 加法 :按位相加,最高位进位丢弃(模 2^n 运算系统)
- 减法:A - B = A + (-B)(先求 B 的补码相反数再加)
5.2 溢出判断(你必须会三种说法,考试爱换问法)
方法A:同号加异号出 ⇒ 溢出(最常用)
-
两个操作数符号相同,结果符号不同 ⇒ 溢出
- 正 + 正 得负 ⇒ 正溢出
- 负 + 负 得正 ⇒ 负溢出
方法B:符号位的"进位异或"判断(硬件视角)
- 符号位的进位 Cin 与 符号位的进位 Cout 不同 ⇒ 溢出
(老师如果讲过标志位 V,一般就是这个思想)
方法C:变形补码 Ss1/Ss2 判断
- 若运算结果的两位符号 Ss1 与 Ss2 不相同 ⇒ 溢出
(因为双符号位出现 01 或 10 代表符号发生不一致)
你现在复习时建议把 A 当主方法,C 用来"解释为什么能判断溢出"。
6)移位运算(定点乘除、对阶都会用)
课件强调补码移位规则(容易错):
- 左移:相当于乘 2;右移:相当于除 2
- 正数补码右移补 0;负数补码右移补 1(算术右移)
课件分别给了正数/负数补码移位示例与易错点提示。
7)定点乘法(Booth 算法是核心考点)
7.1 为什么需要 Booth
普通"逐位加被乘数"的乘法在乘数连续 1 很多时效率低;Booth 把乘数按位差分,减少加法次数。
7.2 Booth 规则(必背表)
课件给了 Booth 一位乘法规则:看 (y_i, y_{i+1})(或等价看 (y_{i+1}-y_i))来决定操作:+X、-X 或不变。
7.3 Booth 做题流程(按寄存器 A、Q...来)
- 初始化:A=0;被乘数 X;乘数 Q;附加位(课件叫 C 或 Q-1)
- 每轮:观察末两位(Q0 与 Q-1),决定 A 加 X / 加 -X / 不变
- 算术右移(A、Q、附加位一起移)
- 重复 n 次
课件给了完整例题步骤(X=-0.1101,Y=-0.1011)并给出最终乘积。
8)定点除法(知道"上商次数、溢出点")
课件小结里有很关键的"考试爱问点":
- 补码除法上商 n+1 次(末位恒置 1),第一次为商符
- 第一次上商可判溢出
- 加 n 次、移 n 次,用移位次数判断结束
- 精度误差最大约 (2^{-n})
还有一个容易出概念题:带符号整数除法一般不溢出,除了 (-2^{n-1}/(-1)) 会溢出(因为结果是 (2^{n-1}),超出正数最大值)。
9)浮点数 IEEE 754(你说最困扰的重点来了)
9.1 IEEE 754 单精度结构(SP,float)
- 1 位 Sign
- 8 位 Exponent(偏置 Bias=127)
- 23 位 Fraction(有效数/尾数小数部分),规格化时有隐藏位 1
9.2 规格化数、非规格化数、0、∞、NaN(必背判定表)
课件把 SP 的分类规则写得非常清楚(指数与尾数组合决定对象类型):
- Exponent=0、Fraction=0 ⇒ ±0
- Exponent=0、Fraction≠0 ⇒ 非规格化数 Denorms(隐藏位为 0)
- Exponent=1~254 ⇒ 规格化数 Norms(隐藏位为 1)
- Exponent=255、Fraction=0 ⇒ ±∞
- Exponent=255、Fraction≠0 ⇒ NaN
做题技巧:看到指数全 0 / 全 1,先别急着算值,先判断是不是 0/非规/∞/NaN。
10)浮点加减运算(期末最爱出的"过程题")
课件给出"基本要点"(你可以直接背成步骤模板):
10.1 浮点加减六步模板(强烈建议你背)
设 X=(Xm, Xe),Y=(Ym, Ye):
-
求阶差:Δe = Ye - Xe(通常让大阶作为结果阶)
-
对阶:小阶的尾数右移 |Δe| 位(保留右移出去的附加位)
-
尾数加/减:对齐后做尾数运算
-
规格化:
- 若高位为 0 ⇒ 左规:尾数左移、阶码减 1,直到 MSB=1 或阶码到最小(可能进入非规格化)
- 若有进位 ⇒ 右规:尾数右移一次、阶码加 1,并检查上溢
-
舍入:尾数超位(有附加位)则按舍入方式处理
-
0 的特殊处理:若尾数为 0,阶码也置 0(保证表示成真正的 0)
10.2 课件例题(你要能复现)
0.5 + (-0.4375):
- 对阶:-1.110×2^-2 → -0.111×2^-1
- 尾数加减:1.000×2^-1 + (-0.111×2-1)=0.001×2-1
- 左规:0.001×2^-1 → 1.000×2^-4
- 结果:0.0625
课件给了完整推导与结果。
10.3 "附加位 Guard/Round"为什么必须有(常考理解题)
课件用"沙堆"比喻说明浮点运算会丢精度,并明确:IEEE754 中间结果右侧要加 2 个附加位 Guard 与 Round,用于保护对阶右移丢掉的位,并作为舍入依据。
11)舍入(浮点题经常考最后一步)
IEEE 754 有四种舍入模式,默认是 round to nearest ,并且当"恰好一半"时采用 round to nearest even(就近取偶),课件写得很清楚:
- 小于 1/2:截断
- 大于 1/2:进 1
- 等于 1/2:取最近偶数(减少统计偏差)
12)数据存储:大小端与对齐(概念题+小计算)
课件给了典型例子:字节编址下,一个 32 位 word 的 4 个字节如何放到地址中;并给出:
- 大端 Big Endian:MSB 所在地址是数的地址
- 小端 Little Endian:LSB 所在地址是数的地址(Intel 80x86 常见)
13)高频易错点(老师很爱拿来出判断/选择)
13.1 C 语言整数类型转换与比较陷阱
课件举了例子:同一段比较在 C90/C99 下结果不同,原因是常量类型推断与提升规则(Integer Promotion)。
13.2 浮点运算不满足结合律
课件给了非常经典的反例:x=-1.5×1038,y=1.5×1038,z=1.0
(x+y)+z = 1.0,但 x+(y+z)=0.0。
期末"最该刷"的题型清单(按得分效率排序)
- 补码/原码/反码互转(含范围、取负、符号扩展)
- 补码加减 + 溢出判断(三种判断法要会说会算)
- Booth 乘法步骤题(会写每轮 A/Q 的变化)
- IEEE754 单精度:真值 ↔ 机器数互转(含特殊值判断)
- 浮点加减过程题(对阶→加减→规格化→舍入→溢出/下溢)
- 大小端存储顺序(给地址写出字节排列)