分数的表示
在计算机内部,表示分数的需求非常常见。例如,可能需要在计算机内部表示+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位。如果进一步增加字长,精度将得到很大提高。
广告