先讲清真值和编码
真值是数本身,例如 −3;机器数是按某种规则写出的位串。不说明位数和编码规则,一串 0 和 1 没有唯一数值含义。
2.1.2 · 建议 15 分钟
从数学真值出发,比较原码、反码、补码和标准移码。
真值是数本身,例如 −3;机器数是按某种规则写出的位串。不说明位数和编码规则,一串 0 和 1 没有唯一数值含义。
原码把符号和绝对值分开。正数原码、反码、补码相同;负数反码把原码的数值位取反,补码则可在反码基础上加 1。
n 位补码范围是 −2^(n−1) 到 2^(n−1)−1。标准移码给真值统一加 2^(n−1),有利于比较大小;浮点阶码还会使用另一种偏置。
用两道小题检查是否看懂本页的核心过程,答错可以重新尝试。
原码与反码都有正零、负零;补码只有一个零。位数改变后,应重新确认范围与码制。
本页以整数建立直觉。教材还讨论定点纯小数:小数点隐含在符号位之后,例如 1.101 的 4 位补码值为 −1+1/2+1/8=−0.375。
依据教材章节范围重新设计,图示、演示数据与练习均为本站制作。配合课本阅读;本站不提供教材电子版。