2016-03-24 9 views
0

Ich habe eine HEX FLOAT IEEE 754 Daten, Beispiel "0x0017A8A6", wie bekomme ich es in C# auf Dezimal "1550502".C# IEEE754 zu dezimal

Ich habe 2 Arbeits Online-Konverter, kann aber nicht den Dezimalwert, nur "2.172716E-39" http://www.h-schmidt.net/FloatConverter/IEEE754.html http://www.binaryconvert.com/convert_signed_int.html?hexadecimal=0017A8A6

Dank erhalten.

+2

Dezimal und Float sind unterschiedlich - was willst du? 1550502 ist die Base-10 _integer_-Darstellung dieser Hex-Zahl, die sich von beiden unterscheidet. –

+0

Mögliches Duplikat von [So erhalten Sie die IEEE 754-Binärdarstellung eines Floats in C#] (http://stackoverflow.com/questions/4249414/how-to-get-the-ieee-754-binary-representation-of- a-float-in-c-sharp) –

Antwort

1

Sie können einen Hex-String parsen (ohne das führende 0x) in C# durch die folgende Zeile ein:

int test = Int32.Parse("0017A8A6", NumberStyles.HexNumber); 

jedoch, wenn die Bit-Muster als IEEE754 interpretiert werden, hat es eine andere Bedeutung und diese Bedeutung ist "2.172716E-39".

Die letzten 15 Bits sind die Mantissa (die man sich als Zahl vorstellen kann) und die nächsten 8 Bits sind der Exponent, der zur Skalierung der Mantisse benutzt wird. Schließlich ist das letzte Bit das Vorzeichenbit.