为什么我们在浮点数的开头使用2位?

时间:2018-02-19 09:20:13

标签: floating-point standards

因此,归一化的浮点数始终以前导数字10或01存储,为什么我们将它存储为2个单独的数字,如果它只能采用两个状态中的一个可用一位表示?

2 个答案:

答案 0 :(得分:3)

对于最常见标准的单精度(32位)或双精度(64位),它们都不会使用您提到的精确组合中的这两个第一位。这取决于数量。

在第一个位中都存储了可以同时具有0和1值的数字的符号,而下一个位是指数的最高有效位,它也可以具有0或1值,具体取决于确切的数字。 / p>

为了说明这些位的用法,这里是浮点数结构的模式:

- 单精度:

Single-precision structure

- 双精度:

Double-precision structure

查看有关浮点数的一些信息:Single-precisionDouble-precision

答案 1 :(得分:1)

我没有在IEEE-754上看到这种编码,单精度。第一位表示符号,可以设置两个第一位。这可以用这段代码看出 -

int main()
{
    float value=-100.5;
    int *valueptr;
    valueptr = &value;
    printf("%0.3f, %08x\n",value, *valueptr);
    value=100.5;
    printf("%0.3f, %08x\n",value, *valueptr);
    return 0;
}