十进制到半精度浮点

时间:2016-04-24 09:57:49

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

我目前正在尝试将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,这是正确的转换方式吗? 非常感谢!

1 个答案:

答案 0 :(得分: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