Linguaggio

Double.LongBitsToDouble(Int64) Metodo

Definizione

Restituisce il double valore corrispondente a una rappresentazione di bit specificata.

[Android.Runtime.Register("longBitsToDouble", "(J)D", "")]
public static double LongBitsToDouble(long bits);
[<Android.Runtime.Register("longBitsToDouble", "(J)D", "")>]
static member LongBitsToDouble : int64 -> double

Parametri

bits
Int64

qualsiasi long numero intero.

Valori restituiti

valore double a virgola mobile con lo stesso modello di bit.

Attributi

Commenti

Restituisce il double valore corrispondente a una rappresentazione di bit specificata. L'argomento viene considerato una rappresentazione di un valore a virgola mobile in base al layout di bit "double format" a virgola mobile IEEE 754.

Se l'argomento è 0x7ff0000000000000L, il risultato è infinito positivo.

Se l'argomento è 0xfff0000000000000L, il risultato è infinito negativo.

Se l'argomento è un valore compreso nell'intervallo 0x7ff0000000000001L compreso 0x7fffffffffffffffL tra o nell'intervallo 0xfff0000000000001L compreso 0xffffffffffffffffLtra , il risultato è un Valore NaN. Nessuna operazione a virgola mobile IEEE 754 fornita da Java può distinguere tra due valori NaN dello stesso tipo con modelli di bit diversi. I valori distinti di NaN sono distinguibili solo tramite il Double.doubleToRawLongBits metodo .

In tutti gli altri casi, let s, e e m sono tre valori che possono essere calcolati dall'argomento :

<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>

Il risultato a virgola mobile equivale quindi al valore dell'espressione matematica s· m· 2<sup> e-1075</sup.>

Si noti che questo metodo potrebbe non essere in grado di restituire un double Valore NaN con lo stesso criterio di bit dell'argomento long . IEEE 754 distingue tra due tipi di nan, nan non silenziosi e nan di segnalazione. Le differenze tra i due tipi di NaN in genere non sono visibili in Java. Le operazioni aritmetiche sulla segnalazione naN le trasformano in nan non silenziose con un modello di bit diverso, ma spesso simile. Tuttavia, in alcuni processori si limita a copiare un naN di segnalazione esegue anche tale conversione. In particolare, la copia di un naN di segnalazione per restituirla al metodo chiamante può eseguire questa conversione. Potrebbe quindi longBitsToDouble non essere in grado di restituire un double oggetto con un modello di bit NaN di segnalazione. Di conseguenza, per alcuni long valori, doubleToRawLongBits(longBitsToDouble(start)) potrebbe non essere uguale a start. Inoltre, quali particolari modelli di bit rappresentano la segnalazione NaN dipende dalla piattaforma; anche se tutti i modelli di bit NaN, silenziosi o segnali, devono trovarsi nell'intervallo NaN identificato in precedenza.

per java.lang.Double.longBitsToDouble(long).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a