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

C#のBitConverter.ToSingle()メソッドとは?使い方とサンプルコードを解説

C#のBitConverter.ToSingle()メソッドは、バイト配列内の指定した位置から4バイトを読み取り、それを単精度浮動小数点数(float型)に変換して返すメソッドです。バイナリファイルやネットワーク通信で取得したバイト列を数値として処理したい場合に非常に便利です。

構文

構文は以下の通りです。

public static float ToSingle(byte[] value, int startIndex);

各パラメータの意味は次の通りです。

  • value: 変換元となるバイト配列
  • startIndex: 変換を開始する配列内の位置(0から始まるインデックス)

戻り値は、指定位置から4バイト分をIEEE 754形式の単精度浮動小数点数に変換したfloat値です。

スローされる可能性のある例外

  • ArgumentNullException: valueがnullの場合に発生します。
  • ArgumentException: startIndex + 4 がバイト配列の長さを超えている場合に発生します。

使用例1

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

using System;

public class Demo {
   public static void Main() {
      byte[] arr = {0, 1, 2, 3, 5, 7, 10};
      Console.WriteLine("Byte Array = {0} ", BitConverter.ToString(arr));
      for (int i = 0; i < arr.Length - 4; i = i + 4) {
         float res = BitConverter.ToSingle(arr, i);
         Console.WriteLine("\nValue = " + arr[i]);
         Console.WriteLine("Result = " + res);
      }
   }
}

実行結果1

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

Byte Array = 00-01-02-03-05-07-0A
Value = 0
Result = 3.820471E-37

使用例2

続いて、要素数の多い別の例を見てみましょう。

using System;

public class Demo {
   public static void Main() {
      byte[] arr = {0, 10, 2, 5, 32, 45, 0, 0, 9, 20, 30, 50, 76, 88};
      Console.WriteLine("Byte Array = {0} ", BitConverter.ToString(arr));
      for (int i = 0; i < arr.Length - 4; i = i + 4) {
         float res = BitConverter.ToSingle(arr, i);
         Console.WriteLine("\nValue = " + arr[i]);
         Console.WriteLine("Result = " + res);
      }
   }
}

実行結果2

このコードの出力は以下の通りです。

Byte Array = 00-0A-02-05-20-2D-00-00-09-14-1E-32-4C-58
Value = 0
Result = 6.114407E-36
Value = 32
Result = 1.61878E-41
Value = 9
Result = 9.201366E-09

まとめ

BitConverter.ToSingle()メソッドを使えば、バイト配列の任意の位置から4バイトを取り出し、単精度浮動小数点数(float)へ簡単に変換できます。ただし、変換結果はシステムのエンディアン(多くの環境ではリトルエンディアン)に依存するため、異なるプラットフォーム間でデータをやり取りする場合には注意が必要です。

  1. C#のAll()メソッドとは?使い方とサンプルコードをわかりやすく解説

    All()メソッドは、LINQに用意されている便利な拡張メソッドの一つで、コレクション内のすべての要素が指定した条件を満たしているかどうかをチェックし、結果をブール値(bool)として返します。判定ルールはシンプルです。すべての要素が条件を満たしていれば True を返しますが、1つでも条件を満たさない要素が存在する場合は False を返します。All()メソッドの基本的な使い方まず、次のような整数型の配列を用意してみましょう。int[] arr = {10, 15, 20};この配列に対してAll()メソッドを使い、「すべての要素が5より大きいかどうか」を確認してみます。arr.AsQue

  2. C#のAll()メソッドとは?使い方とサンプルコードをわかりやすく解説

    C#のAll()拡張メソッドは、System.Linq名前空間に属するLINQ標準クエリ演算子の一つです。このメソッドを使用すると、コレクション(配列やリストなど)内のすべての要素が指定した条件を満たしているかどうかを簡単に判定できます。All()メソッドは引数としてラムダ式で条件を受け取り、すべての要素がその条件を満たせばtrue、一つでも満たさない要素があればfalseを返します。戻り値の型はboolです。基本的な使い方まず、判定対象となる配列を用意します。int[] arr = { 6, 7, 15, 40, 55 };次の例では、配列内のすべての要素が「2以上」であるかどうかをチェック