Language

Double.LongBitsToDouble(Int64) メソッド

定義

特定のビット表現に対応する double 値を返します。

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

パラメーター

bits
Int64

任意の long 整数。

返品

同じビット パターンを持つ double 浮動小数点値。

属性

注釈

特定のビット表現に対応する double 値を返します。 この引数は、IEEE 754 浮動小数点の "double format" ビット レイアウトに従った浮動小数点値の表現と見なされます。

引数が 0x7ff0000000000000Lの場合、結果は正の無限大になります。

引数が 0xfff0000000000000Lの場合、結果は負の無限大になります。

引数が、0x7ff0000000000001L または 0x7fffffffffffffffL を通じて0xfff0000000000001L範囲0xffffffffffffffffL範囲内の任意の値である場合、結果は NaN になります。 Javaによって提供される IEEE 754 浮動小数点演算では、ビット パターンが異なる同じ型の 2 つの NaN 値を区別することはできません。 NaN の個別の値は、 Double.doubleToRawLongBits メソッドを使用してのみ区別できます。

それ以外の場合は、 引数から計算できる 3 つの値に s、 e、 m を指定します。

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

浮動小数点の結果は、数式 s· の値と等しくなります。m·2<sup>e-1075</sup>.

このメソッドは、double引数とまったく同じビット パターンを持つlong NaN を返すことができないことに注意してください。 IEEE 754 では、2 種類の NaN、Quiet NaN、および シグナリング NaN が区別されます。 一般に、2 種類の NaN の違いは、Javaには見えません。 シグナリング NaN に対する算術演算により、異なるビット パターンを持つ静かな NaN に変換されます。 ただし、一部のプロセッサでは、単にシグナリング NaN をコピーするだけで、その変換も実行されます。 特に、シグナル通知 NaN をコピーして呼び出し元のメソッドに返す場合は、この変換を実行できます。 そのため、 longBitsToDouble は、シグナリング NaN ビット パターンを持つ double を返すことができない場合があります。 したがって、一部のlong値では、doubleToRawLongBits(longBitsToDouble(start))が等start場合があります。 さらに、特定のビット パターンがシグナリング NaN を表すのはプラットフォームに依存します。ただし、すべての NaN ビット パターン (quiet または signaling) は、上記で識別された NaN 範囲である必要があります。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象