Double.LongBitsToDouble(Int64) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne la double valeur correspondant à une représentation de bits donnée.
[Android.Runtime.Register("longBitsToDouble", "(J)D", "")]
public static double LongBitsToDouble(long bits);
[<Android.Runtime.Register("longBitsToDouble", "(J)D", "")>]
static member LongBitsToDouble : int64 -> double
Paramètres
- bits
- Int64
n’importe quel long entier.
Retours
valeur double à virgule flottante avec le même modèle de bits.
- Attributs
Remarques
Retourne la double valeur correspondant à une représentation de bits donnée. L’argument est considéré comme une représentation d’une valeur à virgule flottante selon la disposition de bits « double format » à virgule flottante IEEE 754.
Si l’argument est 0x7ff0000000000000L, le résultat est l’infini positif.
Si l’argument est 0xfff0000000000000L, le résultat est l’infini négatif.
Si l’argument est une valeur dans la plage 0x7ff0000000000001L ou 0x7fffffffffffffffL dans la plage 0xfff0000000000001L0xffffffffffffffffL, le résultat est un naN. Aucune opération à virgule flottante IEEE 754 fournie par Java peut distinguer deux valeurs NaN du même type avec des modèles de bits différents. Les valeurs distinctes de NaN ne peuvent être distinguées qu’à l’aide de la Double.doubleToRawLongBits méthode.
Dans tous les autres cas, let s, e et m sont trois valeurs qui peuvent être calculées à partir de l’argument :
<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>
Ensuite, le résultat à virgule flottante est égal à la valeur de l’expression mathématique s· ; m· ; 2<sup> e-1075</sup.>
Notez que cette méthode peut ne pas être en mesure de retourner un double naN avec exactement le même modèle de bits que l’argument long . IEEE 754 fait la distinction entre deux types de naNs, naNs silencieux et signalant des réseaux nans. Les différences entre les deux types de NaN ne sont généralement pas visibles dans Java. Les opérations arithmétiques sur la signalisation des naNs les transforment en nans silencieux avec un modèle de bits différent, mais souvent similaire. Toutefois, sur certains processeurs, la copie d’un signal NaN effectue également cette conversion. En particulier, la copie d’un naN de signalisation pour le retourner à la méthode appelante peut effectuer cette conversion. Par conséquent, il est possible de longBitsToDouble ne pas pouvoir retourner un double modèle de bits NaN signalant. Par conséquent, pour certaines long valeurs, doubleToRawLongBits(longBitsToDouble(start)) peuvent ne pas être égales start. En outre, quels modèles de bits particuliers représentent la signalisation naNs dépend de la plateforme ; bien que tous les modèles de bits NaN, silencieux ou signalant, doivent se trouver dans la plage NaN identifiée ci-dessus.
Java documentation pour java.lang.Double.longBitsToDouble(long).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.