2016-04-24 20 views
2

現在、私は44/7を半精度の浮動小数点形式に変換しようとしています。 これまで正しく行っているかどうかは分かりませんので、誰かが見てもらえると本当に感謝しています。 = 6,285714285714十進数から半精度の浮動小数点

7分の44 ...

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

私は決して10進数を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 
関連する問題