补码分数


例如,如果将 1 001 解释为补码分数,其值如下:- 假设最高有效位之后是二进制点,则为 1.001。由于最高有效位为 1,所以它是一个负数。然后,其余位不直接指定大小。1 001 的补码为 0110 + 1 = 0 111。这是一个正分数,其值为 1 × 2−1 + 1 × 2−2 + 1 × 2−3 = 0.5 + 0.25 + 0.125 = 0.875 十进制。因此,-0.875 是 1001 的值。

如果字长为 n 位,则可以表示的最小幅度非零分数为 2(n-1)。下表显示了字长和可以表示的最小幅度分数。

字长
最小幅度补码分数
       4
±0.125
       8
±0.0078125
       16
±0.0000305
       32
±0.5 × 10−9

要以某种精度表示数字 -0.0123,最小字长必须为 8 位。如果进一步增加字长,精度将得到极大提高。

为了对分数的表示进行通用讨论,我们可以提到,在计算机内部表示分数可能非常必要。例如,可能需要在计算机内部表示 +0.610 或 -0.610 之类的值。为了表示带符号的分数,必须假设二进制点位于位序列中的 MSB 之后。这些二进制点假设在位序列中处于固定位置的数字称为定点数字。

无符号分数将假设二进制点位于最左边。SM、1 的补码和 2 的补码分数将使这个虚构的二进制点位于 MS 位的右边。

如果虚点位于最右边,则该数字为整数。如果无符号数字的虚构二进制点位于最左边,则该数字为无符号分数。如果二进制点位于 MS 位的右侧,则该数字为带符号分数。如果二进制点位于位序列的中间,则该数字具有整数部分和小数部分。

更新于:2020 年 6 月 27 日

5K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告