《计算机系统原理》(2023 年版)第 2 章 数据的表示和运算 学习指南一、章节核心框架 本章聚焦计算机数据处理的底层机制,核心内容包括三大模块: 1. 数据表示技术:二进制、十六进制等数制转换,定点数 / 浮点数的编码规则,字符与字符串的表示方法(ASCII/Unicode),校验码(奇偶校验、CRC、海明码)原理 2. 算术运算方法:补码加减法、定点数乘除法、浮点数运算步骤(对阶 - 尾数运算 - 规格化) 3. 逻辑运算与数据校验:基本逻辑运算(与 / 或 / 非 / 异或),校验码的编码与纠错机制 二、学习目标拆解(一)知识掌握目标1. 熟练掌握二进制、八进制、十六进制与十进制的相互转换(含小数部分) 2. 准确描述定点数(原码 / 反码 / 补码)的表示范围及编码规则(重点 P32 表 2-2) 3. 完整复述浮点数 IEEE 754 标准的结构(符号位 / 阶码 / 尾数)及规格化方法 4. 区分 ASCII、Unicode、GBK 编码的应用场景与编码长度差异 5. 掌握奇偶校验码、CRC 校验码的生成与检错原理 (二)能力培养目标1. 能计算不同码制下定点数的表示范围(如 n 位补码的数值范围是 - 2^(n-1)~2^(n-1)-1) 2. 正确完成补码加减法运算并判断溢出(双符号位法 / 进位判断法) 3. 能推导浮点数运算结果的规格化形式(例:计算 0.125×(-0.5) 的 IEEE 754 单精度表示) 4. 针对给定数据设计校验码并检测传输错误(如 8 位数据的偶校验码生成) 三、重点难点深度解析(一)核心重点模块1. 数制与码制• 补码优势:解决原码加减法符号处理难题,通过模运算实现减法变加法(例:-3 的补码 = 16-3=13(4 位补码)) • 编码对比表: | [size=11.0000pt]表示范围(n 位) | | | | [size=11.0000pt]-(2^(n-1)-1)~2^(n-1)-1 | | | | [size=11.0000pt]-2^(n-1)~2^(n-1)-1 | | [size=11.0000pt]直接相加,自动处理符号 | | [size=11.0000pt]-2^(n-1)~2^(n-1)-1 | | | 2. 浮点数运算• IEEE 754 单精度格式:32 位 = 1 符号位 + 8 阶码(移码表示,偏置值 127)+23 尾数(隐含最高位 1) • 运算步骤: [size=11.0000pt]对阶(小阶向大阶对齐,尾数右移)→ 尾数加减(补码运算)→ 规格化(左规/右规)→ 舍入(0舍1入法)→ 溢出判断(阶码超出范围) | 3. 校验码技术• 奇偶校验:只能检测奇数位错误,无法定位(例:数据 1010 的偶校验码为 10100,传输错误 10110 时校验位 1→0,检测错误) • CRC 校验:通过生成多项式(如 CRC-16: G (x)=x^16+x^15+x^2+1)计算冗余码,能检测突发错误 (二)学习难点突破1. 溢出判断方法 ◦ 双符号位法(变形补码):两符号位不同则溢出(01 正溢,10 负溢) ◦ 进位法:符号位进位与最高数值位进位不同则溢出(例:0111+0111=1110,符号位进位 0→1,数值位进位 1→1,进位不同→正溢) 1. 规格化尾数处理 ◦ 定点数规格化:尾数最高位与符号位不同(补码负数规格化:1.0xx...x) ◦ 浮点数规格化:尾数最高位为 1(原码尾数 1.xxx,补码负数 1.0xxx,隐含最高位 1) 1. 浮点数精度损失问题 ◦ 例:十进制 0.1 无法精确表示为二进制小数,导致运算误差,需理解计算机数据表示的有限精度特性 四、高效学习方法(一)对比记忆法1. 制作数制转换速查表: | | | | | | | | | [size=11.0000pt]4 位二进制对应 1 位十六进制 | | | | | [size=11.0000pt]小数乘 2 取整,顺序排列 |
1. 编码特性对比:通过原码 / 补码 / 反码的 0 表示、加减运算规则差异,强化记忆 (二)流程可视化1. 绘制浮点数运算流程图,标注对阶时尾数右移的位数计算(阶差 =|E1-E2|) 2. 用具体例子演示 CRC 校验过程: ◦ 数据 D=101000,生成多项式 G=10011(5 位) ◦ 计算:D 补 4 个 0→1010000000,除以 G 得余数 R=1001,校验码 = 1010001001 (三)错题归因分析常见错误类型: • 补码运算错误:未注意符号扩展(例:8 位补码 - 5 扩展为 16 位时应为 FFFBH 而非 00FBH) • 规格化遗漏:浮点数运算后未进行左规处理(如尾数 0.0101×2^3 应左规为 1.0101×2^1) • 校验码原理混淆:误将 CRC 校验视为只能检测 1 位错误(实际可检测≤生成多项式次数的突发错误) 五、知识框架与考点聚焦(一)核心知识图谱 [size=11.0000pt]graph TD [size=11.0000pt]A[数据表示] --> B(数制转换) [size=11.0000pt]A --> C(定点数编码) [size=11.0000pt]A --> D(浮点数编码) [size=11.0000pt]A --> E(字符编码) [size=11.0000pt]A --> F(校验码) [size=11.0000pt]B --> B1(二进制↔十进制) [size=11.0000pt]B --> B2(二进制↔十六进制) [size=11.0000pt]C --> C1(原码/反码/补码) [size=11.0000pt]C --> C2(表示范围计算) [size=11.0000pt]D --> D1(IEEE 754结构) [size=11.0000pt]D --> D2(规格化步骤) [size=11.0000pt]E --> E1(ASCII/Unicode区别) [size=11.0000pt]F --> F1(奇偶校验) [size=11.0000pt]F --> F2(CRC校验) [size=11.0000pt]G[数据运算] --> H(算术运算) [size=11.0000pt]G --> I(逻辑运算) [size=11.0000pt]H --> H1(补码加减法) [size=11.0000pt]H --> H2(浮点数运算流程) [size=11.0000pt]I --> I1(基本逻辑操作) | (二)高频考点预测1. 补码运算及溢出判断(简答题 / 计算题,例:计算 9-5 的 4 位补码过程) 2. IEEE 754 浮点数表示(应用题,例:将十进制 25.625 表示为单精度浮点数) 3. CRC 校验码生成(步骤题,给定数据和生成多项式,求校验码) 4. 规格化尾数判断(选择题,如判断 1.0101(补码)是否为规格化数) 六、备考策略与资源推荐(一)针对性练习建议1. 数制转换:每天练习 5 组不同进制转换(含小数),确保 10 分钟内完成 2. 补码运算:用表格记录不同码制下的数值表示(例:n=4 时,-8 的原码 / 补码 / 反码分别为?) 3. 浮点数运算:完成教材 P45 例 2-5、例 2-6,对比手工计算与计算机处理的差异 (二)深度理解工具1. 在线转换工具:Binary Convert(验证数制转换结果)、IEEE 754 Converter(直观查看浮点数二进制结构) 2. 动画演示:观看《浮点数运算过程》动画,理解对阶和规格化的动态过程 3. 开源代码:分析 C 语言中 float 类型的存储方式(如通过 union 观察二进制位) (三)学习计划建议 | | | | | [size=11.0000pt]掌握数制转换、原码 / 补码定义 | | [size=11.0000pt]教材 P50 习题 1、2、3 | | [size=11.0000pt]浮点数运算流程、校验码原理 | | [size=11.0000pt]教材 P51 习题 7、8、9 | | [size=11.0000pt]设计数据校验方案、分析精度问题 | | [size=11.0000pt]模拟题:计算补码溢出案例 | | [size=11.0000pt]制作码制对比表、运算流程图 | | [size=11.0000pt]自测:随机生成数据验证计算 | 七、常见问题答疑Q1:为什么计算机采用补码进行加减运算?A:补码通过模运算将减法转换为加法,简化硬件设计(只需加法器),且 0 的表示唯一,符号位可参与运算 Q2:浮点数规格化的目的是什么?A:确保尾数最高位为 1,最大化有效数字位数,提高数据表示精度(隐含最高位 1,单精度尾数实际有 24 位精度) Q3:CRC 校验能纠正错误吗?A:不能,CRC 只能检测错误(当错误位数≤生成多项式次数时可检测),纠错需海明码等具备纠错能力的编码 通过系统化学习,建议在掌握基本概念的基础上,重点关注不同数据表示方法的应用场景(如定点数适合整数运算,浮点数适合科学计算),以及运算过程中误差产生的原因。结合具体例题反复练习数制转换、补码运算和浮点数规格化,是突破本章难点的关键。遇到复杂运算时,可分步拆解(如将浮点数运算分解为对阶、尾数运算、规格化三步骤),逐步验证每一步结果,确保逻辑清晰。
|