vault backup: 2026-07-04 12:32:07

This commit is contained in:
2026-07-04 12:32:07 +08:00
parent ba1ad4e098
commit 36c88d8b9b
9 changed files with 1207 additions and 155 deletions

View File

@@ -2,6 +2,7 @@
> 📖 本章介绍计算机中数据的表示方法和算术运算,是课程的重点和难点。
> 🎯 重点理解补码运算和浮点数表示
> ⚠️ 考试范围不考6.3.4、6.4.2、6.4.3、6.5节。重点复习例题6.2~6.4、6.6、6.8~6.23、6.29、6.30
---
@@ -13,6 +14,7 @@
- [[#6.4 定点运算]]
- [[#6.5 浮点运算]]
- [[#本章小结]]
- [[#真题与作业精选]]
- [[#例题与解析]]
---
@@ -222,9 +224,20 @@ graph LR
### 6.3.3 IEEE 754标准
> ⚠️ **这是考试高频考点**IEEE 754格式转换在期中考试和样卷中都出现过。
**单精度浮点数32位**符号位1位阶码8位移码表示尾数23位
**双精度浮点数64位**符号位1位阶码11位移码表示尾数52位
**IEEE 754格式要点**
- 阶码采用移码表示,偏移量为 $2^{n-1}-1$单精度偏移127双精度偏移1023
- 尾数隐含一个整数位1隐含的"1"),实际存储的是小数部分
- 阶码全0和全1有特殊含义0、无穷大、NaN
> [!example] 示例IEEE 754转换
> 十进制-53 → IEEE 754单精度符号位1阶码132偏移后尾数1.10101
> 详细过程见下方"真题与作业精选"部分
IEEE 754标准是浮点数的"国家标准"单精度32位精度较低但速度快用于大多数图形处理和科学计算双精度64位精度高但速度慢用于高精度科学计算和金融计算。
---
@@ -233,32 +246,23 @@ IEEE 754标准是浮点数的"国家标准"单精度32位精度较低但速
### 6.4.1 移位运算
> ⚠️ **算术移位是作业原题考点**,不同编码(原码、补码、反码)的移位规则不同,需要特别注意。
**算术移位**左移相当于乘以2右移相当于除以2
**逻辑移位**左移高位移出低位补0右移低位移出高位补0
**不同编码的移位规则**
| 编码 | 左移低位补 | 右移高位补 |
|------|-----------|-----------|
| 原码 | 补0 | 补0 |
| 反码 | 补0正数/补1负数 | 补0正数/补1负数 |
| 补码 | 补0 | 正数补0负数补1即补符号位 |
**注意**算术左移可能溢出。比如原码1.1101000左移一位得到1.1010000最高数值位的1被移出导致溢出。这是考试中常见的陷阱三种编码的移位结果可能不同具体示例见"真题与作业精选"部分。
算术移位像移动小数点左移小数点向右移动数值变大右移小数点向左移动数值变小。逻辑移位所有位向左或向右移动。1010左移1位变成1010010→20
### 6.4.2 加减运算
**补码加减运算**:加法直接相加,减法减数变补码后相加
**溢出判断**:正溢出两个正数相加结果为负,负溢出两个负数相加结果为正
补码加减运算像时钟运算9+7=16≡4(mod 12)9-5=9+7=16≡4(mod 12)。127+1=-1288位补码溢出
### 6.4.3 乘法运算
**原码乘法**:符号位单独处理,数值部分相乘
**补码乘法**:直接用补码相乘
乘法运算像重复加法10×13=130-6×-3=18。
### 6.4.4 除法运算
**原码除法**:符号位单独处理,数值部分相除
**补码除法**:直接用补码相除
除法运算像重复减法10÷2=5-6÷2=-3。
**逻辑移位**左移高位移出低位补0右移低位移出高位补0
---
@@ -266,6 +270,8 @@ IEEE 754标准是浮点数的"国家标准"单精度32位精度较低但速
### 6.5.1 浮点加减运算
> ⚠️ 6.5节不在考试范围内,以下内容仅供了解。
**步骤**
1. **对阶**:使两个数的阶码相同
2. **尾数运算**:对阶后进行尾数加减
@@ -316,6 +322,135 @@ IEEE 754标准是浮点数的"国家标准"单精度32位精度较低但速
---
## 📖 真题与作业精选
> 以下是来自期中考试、样卷和课后作业的真实题目,覆盖本章核心考点。
### 真题1补码加减运算期中原题
**题目**:已知 A=-87, B=53用8位补码计算 A-B。
**解答过程**
首先求出A和B的补码表示
- A = -8787的二进制为01010111取反加1得 [A]补 = 10101001
- B = 5353的二进制为00110101[B]补 = 00110101
- A - B = A + (-B),需要求 [-B]补B的补码取反加1得 [-B]补 = 11001011
补码相加:
```
10101001 (A的补码)
+ 11001011 (-B的补码)
-----------
1 01110100 最高位进位丢弃
```
结果 [A-B]补 = 01110100真值为 +116。
**判断溢出**A是负数符号位1-B是负数符号位1两个负数相加结果为正数符号位0发生**负溢出**。
> 💡 这道题展示了补码减法的完整过程:减法转化为加法,以及双符号位溢出判断法——两个负数相加得正数即为溢出。
### 真题2IEEE 754转换样卷原题
**题目**将IEEE 754单精度浮点数 C2540000H 转换为十进制。
**解答过程**
十六进制转二进制C2540000H = 11000010 01010100 00000000 00000000
按IEEE 754格式拆分
- 符号位:**1**(负数)
- 阶码:**10000100** = 132偏移后 e = 132 - 127 = 5
- 尾数:**01010100 00000000 00000000**加上隐含的1实际尾数为 1.01010100... = 1.10101
计算结果:
$$-(1.10101)_2 \times 2^5 = -110101.0_2 = -(53)_{10}$$
> 💡 IEEE 754转换是高频考点步骤十六进制→二进制→拆分符号/阶码/尾数→阶码减偏移量→组装尾数加隐含1→计算结果。考试时务必注意阶码偏移量是127单精度或1023双精度
### 真题3浮点数表示期中原题
**题目**:用浮点数表示 x₁=7.375 和 x₂=-86.5,分别写出阶码和尾数的原码及补码形式。
**解答过程**
**x₁ = 7.375**
- 转换为二进制7.375 = 111.011 = 0.111011 ×规格化
- 阶码38位原码00000011
- 尾数0.111011补足位数0.1110110000
- 因为是正数,原码 = 补码
**x₂ = -86.5**
- 转换为二进制86.5 = 1010110.1 = 0.10101101 × 2⁷规格化
- 阶码78位原码00000111
- 尾数为负数:原码为 1.1010110100补码需要对负数尾数取反加1
> 💡 浮点数表示需要注意1规格化尾数最高位为12阶码和尾数的符号分开处理3负数尾数的补码表示不要遗漏。这也是期中考试考过的原题。
### 真题4算术移位第6章作业原题
**题目**:对以下三个数分别进行算术左移一位,比较三种编码的结果。
- [x]原 = 1.1101000
- [y]补 = 1.1101000
- [z]反 = 1.1101000
**解答过程**
**原码左移**符号位不变数值位整体左移低位补0。
- 1.1101000 → 1.1010000
- 原码左移后最高数值位的1被移出发生**溢出**,结果出错。
**补码左移**符号位不变数值位整体左移低位补0。
- 1.1101000 → 1.1010000
- 补码的左移规则与原码相同低位补0此结果正确。
**反码左移**负数反码低位补1。
- 1.1101000 → 1.101000**1**
- 反码负数左移时低位补1结果正确。
> 💡 三种编码左移规则的区别是作业重点原码和补码左移低位补0但原码需额外判断溢出反码负数低位补1。这些细微差异是考试中容易丢分的地方。
---
## ⚡ 知识点速记卡
> 考前快速过一遍30秒回忆整章核心
**本章考试重点排序**(按出现频率):
1. **补码加减运算** —— 期中必考,期末高频,掌握溢出判断(双符号位法)
2. **IEEE 754浮点数转换** —— 样卷、期中均有原题熟记偏移量127/1023
3. **浮点数规格化表示** —— 期中原题,注意阶码和尾数分别编码
4. **算术移位** —— 作业原题,三种编码移位规则的区别
5. **Booth算法补码乘法** —— 课后习题重点,理解每步的判断规则
**四种编码速记**:原码(符号+绝对值,零有两种)、补码(正代负,零唯一,运算最简单)、反码(补码-1过渡用、移码补码符号取反便于比较大小
**正数**:原码=反码=补码。**负数**:补码=反码+1。口诀正数不变负数取反加1。
**补码范围**n位-2^(n-1) ~ +(2^(n-1)-1)。8位补码-128~127。-128没有对应原码
**补码加减运算**:加法直接加,减法变补码后加。溢出判断:两个正数相加得负数(正溢出),两个负数相加得正数(负溢出)。口诀:同号相加看结果,异号相加不会溢出。
**定点数**:小数点位置固定。定点整数(小数点在末尾)、定点小数(小数点在符号位后)。
**浮点数 = 尾数 × 2^阶码**类似科学计数法。规格化尾数最高位为1左规尾数左移阶码减1右规尾数右移阶码加1。
**IEEE 754单精度32位**1位符号 + 8位阶码移码偏移127+ 23位尾数。隐含整数位1。阶码全0和全1有特殊含义。
**IEEE 754转换速查**
- 十六进制→二进制→拆分1+8+23
- 阶码值 - 127 = 实际指数
- 尾数前加隐含的1.乘以2的指数次方
- 符号位1为负0为正
**浮点加减五步**:对阶(小阶向大阶看齐)→ 尾数运算 → 规格化 → 舍入 → 溢出判断。
**移位运算**:算术左移=×2算术右移=÷2。逻辑移位补0算术移位保持符号位。注意原码、补码、反码移位时低位补值不同。
---
## 🧪 例题与解析
### 例题1补码计算
@@ -377,30 +512,6 @@ IEEE 754标准是浮点数的"国家标准"单精度32位精度较低但速
---
## ⚡ 知识点速记卡
> 考前快速过一遍30秒回忆整章核心
**四种编码速记**:原码(符号+绝对值,零有两种)、补码(正代负,零唯一,运算最简单)、反码(补码-1过渡用、移码补码符号取反便于比较大小
**正数**:原码=反码=补码。**负数**:补码=反码+1。口诀正数不变负数取反加1。
**补码范围**n位-2^(n-1) ~ +(2^(n-1)-1)。8位补码-128~127。-128没有对应原码
**补码加减运算**:加法直接加,减法变补码后加。溢出判断:两个正数相加得负数(正溢出),两个负数相加得正数(负溢出)。
**定点数**:小数点位置固定。定点整数(小数点在末尾)、定点小数(小数点在符号位后)。
**浮点数 = 尾数 × 2^阶码**类似科学计数法。规格化尾数最高位为1左规尾数左移阶码减1右规尾数右移阶码加1。
**IEEE 754单精度32位**1位符号 + 8位阶码移码偏移127+ 23位尾数。阶码全0和全1有特殊含义。
**浮点加减五步**:对阶(小阶向大阶看齐)→ 尾数运算 → 规格化 → 舍入 → 溢出判断。
**移位运算**:算术左移=×2算术右移=÷2。逻辑移位补0算术移位保持符号位。
---
## 🔗 相关链接
- [[00_计算机组成原理学习指南]] - 返回主目录
@@ -412,3 +523,4 @@ IEEE 754标准是浮点数的"国家标准"单精度32位精度较低但速
*本章难度:⭐⭐⭐⭐⭐ 困难*
*重要程度:⭐⭐⭐⭐⭐ 重点*
*考试提醒本章是期中考试和期末考试的核心章节补码运算和IEEE 754几乎必考*