【问题标题】:Floating point binary representation浮点二进制表示
【发布时间】:2016-05-01 02:13:23
【问题描述】:

我在理解浮点表示(Two 的放置符号尾数指数)时遇到问题,您能检查一下,我做得对吗?

-1/7

-1*1/7*2^0=-1*4/7*2^1=-1*4/7*2^2=-1*8/7*2^3

所以在二进制中它会像:

1 00000011 1.001 001 001 001 001 001 001

1/1357
1*1/1357*2^0=1*2048/1357*2^-11
0 | 11110101 | 1.100 000 100...

-205,34
1,60422*2^7
1| 0000011

1 | ...

我的主要问题是什么时候知道指数是负数,你能给我一些提示吗?

【问题讨论】:

    标签: floating-point bit-representation


    【解决方案1】:

    我假设您说的是float(即IEEE754 binary32)?

    在二进制中,确切的值是

    -1/7 = -1.001001001001001001001001001…2 × 2−3

    首先,指数在[-126,12]范围内,所以我们不用担心下溢或上溢。

    然后我们将有效位四舍五入为 24 位:

    -1.001001001001001001001012 × 2-3

    (注意有效数字的最后一位被四舍五入)

    我们将指数改写为有偏差的形式(指数偏差为 127):

    -1.001001001001001001001012 × 2124−127

    然后我们可以直接读取位模式:

    1|01111100|00100100100100100100101
    

    地点:

    1. 符号为负,所以符号位为1(1位)
    2. 124 二进制 01111100(8 位)
    3. 我们从有效数字(23 位)中去掉隐含的前导 1

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 2018-04-10
      • 2015-12-02
      • 1970-01-01
      • 2016-01-01
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多