C#のBitConverter.Int64BitsToDouble()メソッドとは?使い方とサンプルコード解説
C#のBitConverter.Int64BitsToDouble()メソッドは、指定された64ビット符号付き整数(long型)のビットパターンをそのまま倍精度浮動小数点数(double型)として再解釈するために使用されるメソッドです。このメソッドは値そのものを変換するのではなく、同じビット列を異なるデータ型として読み直す点が特徴です。なお、逆の操作を行うにはBitConverter.DoubleToInt64Bits()メソッドを使用します。
構文
このメソッドの構文は以下の通りです −
public static double Int64BitsToDouble (long val);
ここで、パラメータ val は倍精度浮動小数点数として再解釈したい64ビット符号付き整数です。戻り値は、指定された整数と同じビットパターンを持つdouble型の値となります。
例1:大きな数値の場合
それでは、BitConverter.Int64BitsToDouble()メソッドを使用した具体的な例を見てみましょう −
using System;
public class Demo {
public static void Main(){
long d = 9846587687;
Console.Write("Value (64-bit signed integer) = "+d);
double res = BitConverter.Int64BitsToDouble(d);
Console.Write("\nValue (double-precision floating point number) = "+res);
}
}出力
このプログラムを実行すると、次のような結果が出力されます −
Value (64-bit signed integer) = 9846587687 Value (double-precision floating point number) = 4.86486070491012E-314
例2:小さな数値の場合
続いて、別の例を見てみましょう −
using System;
public class Demo {
public static void Main(){
long d = 20;
Console.Write("Value (64-bit signed integer) = "+d);
double res = BitConverter.Int64BitsToDouble(d);
Console.Write("\nValue (double-precision floating point number) = "+res);
}
}出力
このコードを実行すると、以下の出力結果が得られます −
Value (64-bit signed integer) = 20 Value (double-precision floating point number) = 9.88131291682493E-323
まとめ
BitConverter.Int64BitsToDouble()メソッドは、IEEE 754形式のビット表現に基づいてlong型の値をdouble型として再解釈します。上記の例のように、元の整数値が小さい場合でも、再解釈された結果は非常に小さな浮動小数点数(非正規化数)になることがあります。これは、ビットパターンがそのまま浮動小数点数の内部表現として扱われるためです。低レベルのビット操作やバイナリデータ処理において非常に便利なメソッドです。
-
C#のInt16.CompareTo()メソッドとは?使い方と戻り値を実例で解説
C#のInt16.CompareTo()メソッドは、現在のインスタンス(このInt16型の値)と、指定されたオブジェクトまたは別のInt16インスタンスを比較し、その大小関係を示す整数値を返すメソッドです。戻り値を見ることで、現在のインスタンスが比較対象の値よりも「小さい」「等しい」「大きい」のどれに該当するかを判断できます。なお、Int16は16ビット符号付き整数を表す型で、C#ではshortキーワードに相当します。構文Int16.CompareTo()メソッドには、以下の2つのオーバーロードがあります。public int CompareTo (short val); public int
-
C#のBitConverter.DoubleToInt64Bits()メソッドの使い方を解説
C#におけるBitConverter.DoubleToInt64Bits()メソッドは、指定された倍精度浮動小数点数(double型)を64ビット符号付き整数(long型)に変換するためのメソッドです。このメソッドは、浮動小数点数の内部的なビット表現(IEEE 754形式)をそのまま整数として取得したい場合に役立ちます。構文DoubleToInt64Bits()メソッドの構文は以下の通りです。public static long DoubleToInt64Bits (double val);パラメータ val には、変換対象となるdouble型の数値を指定します。戻り値は、その倍精度浮動小数点