C#のBitConverter.ToString(Byte[])メソッドとは?バイト配列を16進数文字列に変換する方法
C#のBitConverter.ToString()メソッドは、指定されたバイト配列(byte[])の各要素の数値を、それに相当する16進数の文字列表現に変換するために使用されます。各バイト値は「00-0A-02」のようにハイフンで区切られた形式の文字列として返されるため、デバッグやデータの可視化に非常に便利です。
構文
public static string ToString (byte[] val);
パラメータのvalには、変換対象となるバイト配列を指定します。戻り値として、各要素を16進数表記に変換し、ハイフン(-)で連結した文字列が返されます。
使用例1:基本的な変換
まずは、シンプルなバイト配列を16進数文字列に変換する基本的な例を見てみましょう。
using System;
public class Demo {
public static void Main() {
byte[] arr = {0, 10, 2, 5, 32, 45};
int count = arr.Length;
Console.Write("Byte Array... ");
for (int i = 0; i < count; i++) {
Console.Write("\n"+arr[i]);
}
Console.WriteLine("\nByte Array (String representation) = {0} ",
BitConverter.ToString(arr));
}
}出力結果
Byte Array... 0 10 2 5 32 45 Byte Array (String representation) = 00-0A-02-05-20-2D
この例では、バイト配列の各要素(0, 10, 2, 5, 32, 45)がそれぞれ2桁の16進数(00, 0A, 02, 05, 20, 2D)に変換され、ハイフン区切りの文字列として出力されていることが確認できます。
使用例2:ToInt16との組み合わせ
次に、BitConverter.ToInt16()メソッドと組み合わせた例を紹介します。バイト配列を16進数文字列として表示しつつ、2バイトずつ組み合わせてshort型(16ビット整数)の値に変換しています。
using System;
public class Demo {
public static void Main() {
byte[] arr = { 0, 0, 7, 10, 18, 20, 25, 26, 32};
int count = arr.Length;
Console.Write("Byte Array... ");
for (int i = 0; i < count; i++) {
Console.Write("\n"+arr[i]);
}
Console.WriteLine("\nByte Array (String representation) = "+BitConverter.ToString(arr));
for (int i = 0; i < arr.Length - 1; i = i + 2) {
short res = BitConverter.ToInt16(arr, i);
Console.WriteLine("\nValue = "+arr[i]);
Console.WriteLine("Result = "+res);
}
}
}出力結果
Byte Array... 0 0 7 10 18 20 25 26 32 Byte Array (String representation) = 00-00-07-0A-12-14-19-1A-20 Value = 0 Result = 0 Value = 7 Result = 2567 Value = 18 Result = 5138 Value = 25 Result = 6681
このように、BitConverter.ToString()を使えばバイト配列の中身をひと目で確認でき、BitConverter.ToInt16()などの変換メソッドと併用することで、バイト列から数値への復元処理も簡単に行えます。バイナリデータの解析や通信プロトコルの実装など、さまざまな場面で活用できる便利なメソッドです。
-
C#で配列のToString()メソッドを使う方法をわかりやすく解説
ToString()メソッドは、現在のオブジェクトを表す文字列を返すメソッドです。C#では、数値やオブジェクトなどを文字列に変換したい場面で頻繁に利用されます。 次のサンプルコードでは、ToString()メソッドをArrayクラスの別のメソッドであるGetLowerBound()と組み合わせて使用しています。GetLowerBound(0)は配列の最初の次元におけるインデックスの下限(下限境界)を取得し、その戻り値をToString()で文字列化して表示しています。 サンプルコード using System; using System.Collections.Generic; using S
-
C#のArray.BinarySearchメソッドの使い方 – 配列要素の位置を検索する
C#のArray.BinarySearchメソッドを使用すると、配列内の要素がどの位置(インデックス)にあるかを検索できます。このメソッドは二分探索(バイナリサーチ)アルゴリズムを採用しているため、大量のデータを扱う場合でも高速に処理できるのが特徴です。 Array.BinarySearchメソッドの基本的な使い方 まず、検索対象となる文字列配列を設定します。 string[] str = { a, m, i, t }; 次に、Array.BinarySearchメソッドを使って、文字「t」の位置を取得します。 Array.BinarySearch(str, t); サンプルコード 以下に