【问题标题】:Decimal to half-precision floating point十进制到半精度浮点
【发布时间】:2016-08-17 17:28:09
【问题描述】:

我目前正在尝试将 44/7 转换为半精度浮点格式。 我不确定到目前为止我是否做得正确,所以如果有人可以看一下,我将不胜感激。

44/7 = 6,285714285714...

6 in dual -> 110;
0.285714 * 2 = 0,571428 -> 0
0.571428 * 2 = 1.142856 -> 1
0.142856 * 2 = 0.285714 -> 0
... -> 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1...

-> 110, 01001001001001
-> 1,1001001001001001 -> exponent: 2;

偏差 + 指数:2+15 = 17 => 1 0 0 0 1

全部拼接在一起:0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1

我从未将十进制转换为 16 位 IEEE754,这是正确的转换方法吗? 非常感谢!

【问题讨论】:

    标签: binary floating-point decimal floating 16-bit


    【解决方案1】:

    正确。如您所料,它被量化为 6.28515625。

    0100011001001001(基数 2)= 4649(基数 16)

    6.2857142857139996
      = H(4649)
      = F(40C92492)
      = D(40192492 49249107)
      = A(0X1.92492492491070P+2)
    6.28515625
      = H(4649)
      = F(40C92000)
      = D(40192400 00000000)
      = A(0X1.92400000000000P+2)
    

    其他数据点:

    +0.         0000
    -0.         8000
    -1.         BC00
    +1.         3C00
    +2.         4000
    +4.         4400
    +8.         4800
    +16.        4C00
    +32768.     7800
    +Max        7BFF    65504
    +.5f        3800
    +.25f       3400
    +.125f      3000
    +.0625f     2C00
    +MinNorm    0400    +6.103515625e-05
    -MinNorm    8400    -6.103515625e-05
    +MinDenorm  0001    +5.9604644775390625e-08
    -MinDenorm  8001    -5.9604644775390625e-08
    +Infinity   7C00
    -Infinity   FC00
    +NaN(0)     7E00
    -NaN(0)     FE00
    

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 2013-12-16
      • 2019-11-10
      • 2014-02-07
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 2016-01-31
      • 2020-02-03
      相关资源
      最近更新 更多