Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie bekommt man den exponent von doubles
SimonX
2004-06-14, 10:53:51
Gibt es da eine Standardfunktion die einem den Exponent eines doubles gibt? Das IEEE Format hat das ja direct als Bit-Wert, nur habe ich keine Standardfunktion gefunden die einem das als integer liefert.
Ich brauche das, um dan erwarteten Fehler bei Rechenoperationen zu verfolgen.
Z.b.:
1000000000000+0.000000000001
Doubles habe eine Präzision von 16 digits.
Somit ist hier der Fehler 1e (16-13) = 1e-3 = 0.001
DocEW
2004-06-14, 11:05:42
Ich glaube nicht, daß es eine Standardfunktion gibt (welche Sprache benutzt du überhaupt?). Kannst du aber doch relativ leicht ausrechnen, indem du zählst, wie oft du durch 2 Teilen mußt, um die Zahl kleiner als 1 zu machen. Oder so ähnlich, ich kann mir nie merken, ob IEEE normiert ist und der Exponent mit Bias abgespeichert wird usw.
Bei IEEE754 doubles ist der Exponent in Bias-Darstellung gespeichert.
Es gibt soweit ich weiß keine fertige Funktion, du könntest die log-Funktionen benutzen oder selbst direkt auf die Bits zugreifen.
Was ist der Exponent eine denormalisierten Zahl oder von NaN, +inf oder -inf?
Obligaron
2004-06-14, 14:13:41
Wie wäre es mit http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_frexp.asp ?
MfG,
Obligaron
Scheint zu passen. Ist sogar definiert was bei +-inf oder Nan passiert.
http://www.opengroup.org/onlinepubs/007908799/xsh/frexp.html
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.