C# で文字列を 16 進数に変換する

Muhammad Maisam Abbas 2023年12月11日
  1. C# の BitConverter.ToString() メソッドを使用して文字列を 16 進数に変換する
  2. C# の String.Format() メソッドを使用して文字列を 16 進数に変換する
C# で文字列を 16 進数に変換する

このチュートリアルでは、C# で文字列を 16 進数にする方法について説明します。

C# の BitConverter.ToString() メソッドを使用して文字列を 16 進数に変換する

基数 10 の数値を含む文字列があり、それを基数 16 の数値を含む文字列に変換する必要がある場合は、BitConverter.ToString() メソッドを使用できます。C# の BitConverter.ToString(x) メソッドは、バイト配列 x の各要素を 16 進値に変換します。BitConverter.ToString() メソッドを使用するには、Encoding.Default.GetBytes() メソッドを使用して文字列変数をバイトの配列に変換する必要があります。このメソッドは、文字列変数を C# のバイト配列に変換します。BitConverter.ToString() メソッドは、各値が - で区切られた 16 進文字列を返します。String.Replace() メソッドを使用して、- セパレーターを削除できます。

using System;
using System.Linq;
using System.Text;

namespace string_to_hex {
  class Program {
    static void Main(string[] args) {
      string decString = "0123456789";
      byte[] bytes = Encoding.Default.GetBytes(decString);
      string hexString = BitConverter.ToString(bytes);
      hexString = hexString.Replace("-", "");
      Console.WriteLine(hexString);
    }
  }
}

出力:

30313233343536373839

上記のコードでは、C# の BitConverter.ToString() メソッドを使用して、10 進値の文字列 decString を 16 進値の文字列 hexString に変換しました。

C# の String.Format() メソッドを使用して文字列を 16 進数に変換する

String.Format() メソッドは、C# で指定された形式指定子に従って文字列をフォーマットします。{0:X2} フォーマット指定子は、16 進フォーマットを指定します。String.Format() メソッド内で {0:X2} フォーマット指定子を使用して、10 進値の文字列を 16 進値の文字列にフォーマットできます。LINQ を使用すると、10 進文字列の各文字を 16 進形式に簡単にフォーマットできます。

using System;
using System.Linq;
using System.Text;

namespace string_to_hex {
  class Program {
    static void Main(string[] args) {
      string decString = "0123456789";
      var hexString =
          string.Join("", decString.Select(c => String.Format("{0:X2}", Convert.ToInt32(c))));
      Console.WriteLine(hexString);
    }
  }
}

出力:

30313233343536373839

上記のコードでは、10 進値の文字列変数 decString を、String.Format() メソッドと C# の LINQ を使用して 16 進値の文字列変数 hexString に変換しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp String

関連記事 - Csharp Hex