2016-04-24 238 views
2

我正在嘗試將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

正確。如你所料,它被量化爲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