Double.LongBitsToDouble(Int64) Método

Definição

Retorna o double valor correspondente a uma determinada representação de bit.

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

Parâmetros

bits
Int64

qualquer long inteiro.

Retornos

o double valor de ponto flutuante com o mesmo padrão de bit.

Atributos

Comentários

Retorna o double valor correspondente a uma determinada representação de bit. O argumento é considerado uma representação de um valor de ponto flutuante de acordo com o layout de bit "formato duplo" do ponto flutuante IEEE 754.

Se o argumento for 0x7ff0000000000000L, o resultado será infinito positivo.

Se o argumento for 0xfff0000000000000L, o resultado será infinito negativo.

Se o argumento for qualquer valor no intervalo 0x7ff0000000000001L por meio 0x7fffffffffffffffL ou no intervalo 0xfff0000000000001L , 0xffffffffffffffffLo resultado será um NaN. Nenhuma operação de ponto flutuante IEEE 754 fornecida por Java pode distinguir entre dois valores NaN do mesmo tipo com padrões de bits diferentes. Valores distintos de NaN só são distinguíveis com o uso do Double.doubleToRawLongBits método.

Em todos os outros casos, vamosser três valores que podem ser computados a partir do argumento:

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

Em seguida, o resultado do ponto flutuante é igual ao valor da expressão matemática s· m· 2<sup> e-1075</sup.>

Observe que esse método pode não ser capaz de retornar um double NaN com exatamente o mesmo padrão de bit que o long argumento. O IEEE 754 distingue entre dois tipos de NaNs, NaNs silenciosos e NaNs de sinalização. As diferenças entre os dois tipos de NaN geralmente não são visíveis em Java. Operações aritméticas na sinalização de NaNs os transformam em NaNs silenciosos com um padrão de bit diferente, mas muitas vezes semelhante. No entanto, em alguns processadores, apenas copiar um NaN de sinalização também executa essa conversão. Em particular, copiar um NaN de sinalização para devolvê-lo ao método de chamada pode executar essa conversão. Portanto, longBitsToDouble talvez não seja possível retornar um double com um padrão de bit naN de sinalização. Consequentemente, para alguns long valores, doubleToRawLongBits(longBitsToDouble(start)) pode não ser igual start. Além disso, quais padrões de bits específicos representam a sinalização de NaNs é dependente da plataforma; embora todos os padrões de bit naN, silenciosos ou sinalização, devem estar no intervalo naN identificado acima.

Java documentação para java.lang.Double.longBitsToDouble(long).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Aplica-se a