分数的表示


在计算机内部,表示分数的需求非常常见。例如,可能需要在计算机内部表示+0.610或-0.610这样的值。为了表示带符号分数,必须假设二进制点位于位序列的MSB之后。这种二进制点位于位序列固定位置的数字称为定点数字。

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

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

让我们讨论一下2的补码分数。例如,如果将1 001解释为2的补码分数,其值如下:假设二进制点在MS位之后,它是1.001。由于MS位为1,它是一个负数。然后剩余的位不直接指定大小。1 001的2的补码是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)。下表显示了字长和可以表示的最小幅度分数。

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

要相对准确地表示数字-0.0123,最小字长必须为8位。如果进一步增加字长,精度将得到很大提高。


更新于:2020年6月27日

浏览量:1000+

开启你的职业生涯

完成课程获得认证

开始学习
广告