2.3(前半) · 建议 15 分钟

移位、扩展与舍入

对同一串 8 位代码尝试移动、增减位数与舍入,观察数值变化。

可学习
教材定位:纪禄平等《计算机组成原理》第 6 版,2.3(前半),第 50—52 页(书内印刷页码)。
学习顺序:先理解补码、位权与定点小数。
先读懂,再操作

从这个问题开始:位串发生变化后,数值还保持不变吗?

移位需要明确解释规则

逻辑移位把代码看成位串,右移高位补 0。补码算术右移复制符号位;左移可能溢出,右移可能丢失低位精度。

扩展与压缩

补码符号扩展复制最高位,能保持原真值;零扩展适合无符号数据。压缩去掉高位后,要检查原值是否仍在新范围内。

舍入怎样选择保留值

教材先讲“0 舍 1 入”和“末位恒置 1”。它们都是减少位数时的处理规则,与浮点运算的具体舍入模式需要区分。

本页小词典 · 遇到生词可以回来看
逻辑移位
把代码当作位串移动,空位通常补 0。
算术右移
对补码复制符号位的右移,可能丢失低位信息。
符号扩展
增加高位时复制补码的符号位,保持真值。
舍入
用有限位数近似表示原来需要更多位数的结果。

动手观察:移位、扩展与舍入

动态图解 · 分步学习

每种操作都从输入的原始八位代码出发。舍入入口把代码解释为无符号纯小数。 修改参数后点击上方按钮生效;用“下一步”观察过程。

演示范围移位和扩展以 8 位整数为例;舍入模式把同一位串解释为无符号纯小数,保留 4 位小数。每种模式的解释会在第一步说明。

带着问题再试一次

  1. 用 11111011(补码 −5)比较逻辑右移与算术右移,解释为什么后者为 −3。
  2. 用 01000000 比较左移前后的补码真值,判断是否溢出。
  3. 用 10000000 比较符号扩展和零扩展;再检查压缩是否无损。
  4. 舍入入口试 11011000、11111111、10100000,比较进位、误差和末位恒置 1。
由易到难 · 做完再看解释

分层练习

从基础识记走向理解应用和迁移挑战。选择、填写或先写下自己的解释,答错可以重新尝试。

第 1 层

认清规则

先确认当前采用的表示约定。

0 / 2 完成
第 2 层

独立计算

换一组数据,核对每一步。

0 / 2 完成
2. 8 位补码 01000000 左移一位得到 10000000,能否说真值变成 128?
第 3 层

解释与迁移

说明规则成立的条件,辨别常见误解。

0 / 2 完成
2. 把八位补码 −128 压缩成四位,能否无损?
本节知识清单与课堂延伸

逻辑移位还包括循环移位:移出的位绕回另一端。补码负奇数算术右移一位相当于除以 2 后向下取整,不能简单等同于向零截断。

双符号位可保留一些中间状态;符号位不同往往提示结果需处理。该思想会在定点运算中进一步使用。

依据教材章节范围重新设计,图示、演示数据与练习均为本站制作。配合课本阅读;本站不提供教材电子版。