2.1.2 · 建议 15 分钟

正负数怎样编码

从数学真值出发,比较原码、反码、补码和标准移码。

可学习
教材定位:纪禄平等《计算机组成原理》第 6 版,2.1.2,第 37—42 页(书内印刷页码)。
学习顺序:先完成进制与位权案例。
先读懂,再操作

从这个问题开始:最高位为 1,就一定表示同一个负数吗?

先讲清真值和编码

真值是数本身,例如 −3;机器数是按某种规则写出的位串。不说明位数和编码规则,一串 0 和 1 没有唯一数值含义。

符号与数值如何组合

原码把符号和绝对值分开。正数原码、反码、补码相同;负数反码把原码的数值位取反,补码则可在反码基础上加 1。

补码与标准移码

n 位补码范围是 −2^(n−1) 到 2^(n−1)−1。标准移码给真值统一加 2^(n−1),有利于比较大小;浮点阶码还会使用另一种偏置。

本页小词典 · 遇到生词可以回来看
真值
平常数学意义下的数值。
机器数
按照约定码制存储的数码序列。
符号位
在原码等表示中用来标明正负的最高位。
编码按固定范围循环的周期;n 位整数补码按 2^n 取模。

动手观察:正负数怎样编码

动态图解 · 公式推演

第一次建议用 4 位、−3;尚未讲到的编码会保持隐藏。 修改参数后点击上方按钮生效;用“下一步”观察过程。

演示范围使用简化的教学数据逐步说明原理,具体部件的电路实现留到后续章节。

带着问题再试一次

  1. 使用 4 位分别输入 3、−3、0,比较四种编码。
  2. 输入 4 位最小补码数 −8,解释为什么同位数原码无法表示。
做完再看解释

检查理解

用两道小题检查是否看懂本页的核心过程,答错可以重新尝试。

1. 4 位补码 1101 表示什么?
2. 8 位标准移码的偏置是多少?
本节知识清单与课堂延伸

原码与反码都有正零、负零;补码只有一个零。位数改变后,应重新确认范围与码制。

本页以整数建立直觉。教材还讨论定点纯小数:小数点隐含在符号位之后,例如 1.101 的 4 位补码值为 −1+1/2+1/8=−0.375。

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