首页 文章

IEEE-754浮点数如何工作

提问于
浏览
8

假设我有这个:

float i = 1.5

在二进制文件中,此float表示为:

0 01111111 10000000000000000000000

我打破了二进制代表'signed','exponent'和'fraction'块 .

我不明白的是这代表1.5 .

一旦减去偏差(127-127),指数为0,隐含前导的部分为1.1 .

1.1如何缩小= 1.5 ???

4 回答

  • 24

    二进制1.1是1.5 = 1.5

  • 0

    你想读这个 - IEEE 754-1985

    实际标准是here

  • 0

    尾数基本上被指数移位 .

    3 in binary is 0011
    3>>1 in binary, equal to 3/2, is 0001.1
    
  • 7

    首先考虑十进制(基数为10):643.72是:

    • (6 * 102)

    • (4 * 101)

    • (3 * 100)

    • (7 * 10-1)

    • (2 * 10-2)

    或600 40 3 7/10 2/100 .

    这是因为n0总是1,n-1与1 / n相同(对于特定情况),n-m与1 / nm相同(对于更一般的情况) .

    同样,二进制数1.1是:

    • (1 * 20)

    • (1 * 2-1)

    20为一,2-1为一半 .

    在十进制中,小数点左边的数字有乘数1,10,100等小数点左边的 Headers ,右边是1 / 10,1 / 100,1 / 1000(即102,101, 100,小数点,10-1,10-2,......) .

    在base-2中,二进制点左边的数字有乘数1,2,4,8,16,左边是左边的数字 . 右边的数字有乘数1 / 2,1 / 4,1 / 8,依此类推 .

    那么,例如,二进制数:

    101.00101
    | |   | |
    | |   | +- 1/32
    | |   +---  1/8
    | +-------    1
    +---------    4
    

    相当于:

    4 + 1 + 1/8 + 1/32
    

    要么:

    5
    5  --
       32
    

相关问题