Double.LongBitsToDouble(Int64) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den Wert zurück, der double einer bestimmten Bitdarstellung entspricht.
[Android.Runtime.Register("longBitsToDouble", "(J)D", "")]
public static double LongBitsToDouble(long bits);
[<Android.Runtime.Register("longBitsToDouble", "(J)D", "")>]
static member LongBitsToDouble : int64 -> double
Parameter
- bits
- Int64
eine ganze long Zahl.
Gibt zurück
der double Gleitkommawert mit demselben Bitmuster.
- Attribute
Hinweise
Gibt den Wert zurück, der double einer bestimmten Bitdarstellung entspricht. Das Argument wird als Darstellung eines Gleitkommawerts gemäß dem IEEE 754-Gleitkomma-Bitlayout "Double Format" betrachtet.
Wenn das Argument lautet, ist 0x7ff0000000000000Ldas Ergebnis positive Unendlichkeit.
Wenn das Argument lautet 0xfff0000000000000L, ist das Ergebnis negative Unendlichkeit.
Wenn das Argument ein beliebiger Wert im Bereich 0x7ff0000000000001L durch 0x7fffffffffffffffL oder im Bereich 0xfff0000000000001L durchgibt 0xffffffffffffffffL, ist das Ergebnis ein NaN. Kein IEEE 754-Gleitkommavorgang, der von Java bereitgestellt wird, kann zwischen zwei NaN-Werten desselben Typs mit unterschiedlichen Bitmustern unterscheiden. Unterschiedliche Werte von NaN können nur mithilfe der Double.doubleToRawLongBits Methode unterschieden werden.
In allen anderen Fällen sind "e" und "m" drei Werte, die aus dem Argument berechnet werden können:
<Blockquote>
{@code
int s = ((bits >> 63) == 0) ? 1 : -1;
int e = (int)((bits >> 52) & 0x7ffL);
long m = (e == 0) ?
(bits & 0xfffffffffffffL) << 1 :
(bits & 0xfffffffffffffL) | 0x10000000000000L;
}
</blockquote>
Dann entspricht das Gleitkommaergebnis dem Wert des mathematischen Ausdrucks s· m· 2<sup> e-1075</sup.>
Beachten Sie, dass diese Methode möglicherweise nicht in der Lage ist, einen double NaN mit genau dem gleichen Bitmuster wie das long Argument zurückzugeben. IEEE 754 unterscheidet zwischen zwei Arten von NaNs, ruhigen NaNs und signalisierenden NaNs. Die Unterschiede zwischen den beiden NaN-Arten sind in Java im Allgemeinen nicht sichtbar. Arithmetische Vorgänge beim Signalisieren von NaNs verwandeln sie in ruhige NaNs mit einem anderen, aber oft ähnlichen Bitmuster. Bei einigen Prozessoren wird jedoch lediglich ein Signal naN kopiert, die Konvertierung wird ebenfalls ausgeführt. Insbesondere kann das Kopieren eines Signals naN, um es an die aufrufende Methode zurückzugeben, diese Konvertierung ausführen. Möglicherweise longBitsToDouble kann ein double Signal für ein NaN-Bitmuster nicht zurückgegeben werden. Aus diesem Grund kann es für einige long Werte doubleToRawLongBits(longBitsToDouble(start))nicht gleich sein start. Darüber hinaus ist die Signalisierung von NaNs durch bestimmte Bitmuster plattformabhängig; Obwohl alle NaN-Bitmuster, leise oder signalisiert werden, müssen sich im oben angegebenen NaN-Bereich befinden.
Java Dokumentation für java.lang.Double.longBitsToDouble(long).
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.