C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のBitConverter.DoubleToInt64Bits()メソッドの使い方を解説

C#におけるBitConverter.DoubleToInt64Bits()メソッドは、指定された倍精度浮動小数点数(double型)を64ビット符号付き整数(long型)に変換するためのメソッドです。このメソッドは、浮動小数点数の内部的なビット表現(IEEE 754形式)をそのまま整数として取得したい場合に役立ちます。

構文

DoubleToInt64Bits()メソッドの構文は以下の通りです。

public static long DoubleToInt64Bits (double val);

パラメータ val には、変換対象となるdouble型の数値を指定します。戻り値は、その倍精度浮動小数点数のビットパターンを表す64ビット符号付き整数です。

使用例1

まずは基本的な使用例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        double d = 5.646587687;
        Console.Write("Value = "+d);
        long res = BitConverter.DoubleToInt64Bits(d);
        Console.Write("\n64-bit signed integer = "+res);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Value = 5.646587687
64-bit signed integer = 4618043510978159912

ご覧の通り、double型の値「5.646587687」が、対応するビットパターンを持つ64ビット符号付き整数に変換されました。

使用例2

続いて、別の値を使った例を紹介します。

using System;
public class Demo {
    public static void Main(){
        double d = 0.001;
        Console.Write("Value = "+d);
        long res = BitConverter.DoubleToInt64Bits(d);
        Console.Write("\n64-bit signed integer = "+res);
    }
}

出力結果

実行結果は以下のようになります。

Value = 0.001
64-bit signed integer = 4562254508917369340

まとめ

BitConverter.DoubleToInt64Bits()メソッドは、double型の値をIEEE 754規格に基づくビット表現のままlong型(64ビット符号付き整数)へ変換します。なお、逆の変換(long型からdouble型への復元)を行いたい場合は、BitConverter.Int64BitsToDouble()メソッドを使用します。これらのメソッドは、バイナリデータのシリアライズや低レベルの数値処理において非常に有用です。

  1. C#のTakeWhileメソッドの使い方をわかりやすく解説

    C#のLINQに用意されているTakeWhile()メソッドを使うと、Predicate(述語)で指定した条件が成立している間、シーケンスの先頭から要素を取得することができます。 このメソッドは、条件を満たす限り先頭から順に要素を取り出し、最初に条件を満たさなくなった要素に到達した時点で処理を停止するという特徴があります。そのため、配列の途中に条件外の要素があると、それ以降の要素はたとえ条件を満たしていても取得されない点に注意が必要です。 TakeWhile()メソッドの基本的な使い方 まず、整数型の配列を宣言して初期化します。 int[] arr = { 25, 40, 65, 70 };

  2. C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説

    GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と