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

C#のBitConverter.ToChar()メソッドの使い方を解説!構文・コード例・実行結果

C#のBitConverter.ToChar()メソッドは、バイト配列内の指定された位置から2バイトを読み取り、それをUnicode文字(char型)に変換して返す静的メソッドです。バイナリデータの解析や文字コード処理など、バイトデータと文字データを扱う場面で活躍します。

構文

public static char ToChar (byte[] value, int startIndex);

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

  • value: 変換元となるバイト配列
  • startIndex: 変換を開始する位置(インデックス)。この位置から2バイトが読み取られます。

戻り値

startIndexで指定した位置から読み取った2バイトを組み合わせて形成されるUnicode文字(char型)を返します。

例外

  • ArgumentNullException: valueがnullの場合にスローされます。
  • ArgumentOutOfRangeException: startIndexが0未満、または配列の有効な範囲外の場合にスローされます。
  • ArgumentException: startIndex以降の残りのバイト数が2バイト未満の場合にスローされます。

使用例1:基本的な使い方

using System;

public class Demo {
    public static void Main() {
        byte[] arr = { 0, 20, 50, 65 };
        Console.WriteLine("Array = {0} ",
        BitConverter.ToString(arr));

        for (int i = 1; i < arr.Length - 1; i = i + 2) {
            char values = BitConverter.ToChar(arr, i);
            Console.WriteLine("Value = " + arr[i]);
            Console.WriteLine("Result = " + values);
        }
    }
}

実行結果

Array = 00-14-32-41
Value = 20
Result = ㈔

この例では、forループを使ってインデックス1の位置から2バイト(20と50)を読み取り、それらを組み合わせたUnicode文字「㈔」が出力されています。このように、ToChar()メソッドは常に指定位置から2バイトずつ読み込んで1つの文字を生成します。

使用例2:複数の位置から変換する

using System;

public class Demo {
    public static void Main() {
        byte[] arr = { 50, 13, 23, 18, 160 };
        Console.WriteLine("Array = {0} ",
        BitConverter.ToString(arr));

        for (int i = 1; i < arr.Length - 1; i = i + 2) {
            char values = BitConverter.ToChar(arr, i);
            Console.WriteLine("Value = " + arr[i]);
            Console.WriteLine("Result = " + values);
        }
    }
}

実行結果

Array = 32-0D-17-12-A0
Value = 13
Result = ᜍ
Value = 18
Result = ꀒ

こちらの例では、5要素のバイト配列に対してループ処理を行い、インデックス1と3のそれぞれの位置から2バイトずつ読み取り、異なるUnicode文字「ᜍ」「ꀒ」に変換しています。

まとめ

BitConverter.ToChar()メソッドを使えば、バイト配列内の任意の位置から2バイトを読み取り、簡単にUnicode文字へ変換できます。引数には変換元のバイト配列と開始インデックスを指定し、範囲外のインデックスやバイト数不足の場合は例外がスローされる点に注意しましょう。バイナリデータの解析やエンコード・デコード処理などでぜひ活用してください。

  1. C#のConvert.ToCharメソッドとは?数値をUnicode文字に変換する方法

    C#のConvert.ToCharメソッドとはConvert.ToCharメソッドは、指定した値を対応するUnicode文字(char型)に変換するためのメソッドです。引数に渡された数値はUnicodeコードポイントとして解釈され、そのコードポイントに該当する文字が返されます。例えば、sbyte型の値をchar型に変換する場合は、以下のように記述します。sbyte byteVal = 92; char charVal = Convert.ToChar(byteVal);サンプルコードここでは、sbyte型の配列に格納された複数の数値を、foreachループを使って順番に文字へ変換する例を見てみ

  2. C#のAggregateメソッドとは?配列要素を集計・演算する方法を解説

    C#のLINQに用意されているAggregate(集計)メソッドを使うと、Sum(合計)、Min(最小値)、Max(最大値)、Average(平均)といった数学的な演算を柔軟に実装できます。Aggregateメソッドは、ラムダ式で指定した処理をシーケンスの各要素に順番に適用し、最終的に1つの結果へと集約します。ここでは、配列の全要素を掛け合わせる例を通して、その使い方を見ていきましょう。サンプル:配列要素の積を求めるまずは、次のような整数型の配列を用意します。int[] arr = { 10, 15, 20 };この配列に対して、Aggregate()メソッドを次のように呼び出します。 x *