C#で16進数表記の文字列を数値に変換するサンプルコードです。
サンプル1:Parseメソッドを使用
int.Parseメソッドの引数に System.Globalization.NumberStyles.HexNumber を指定します。変換時に問題が発生した場合は例外がスローされるので try-catch ブロック内でエラー処理をします。
using System;
class Program
{
static void Main()
{
string hexString = "1A3F"; // 変換したい16進数表記の文字列
// Parseメソッドを使用する例
try
{
int result = int.Parse(hexString, System.Globalization.NumberStyles.HexNumber); // 16進数表記の文字列を整数に変換
Console.WriteLine($"Parse結果: {result}"); // 変換結果を表示
}
catch (Exception ex)
{
Console.WriteLine("Parseエラーが発生しました: " + ex.Message); // エラーメッセージを表示
}
}
}
サンプル2:TryParseメソッドを使用
int.TryParseメソッドの引数に System.Globalization.NumberStyles.HexNumber を指定します。変換時に問題が発生した場合はTryParseの戻り値がfalseとなりますので、その場合はエラー処理をします。
using System;
class Program
{
static void Main()
{
string hexString = "1A3F"; // 変換したい16進数表記の文字列
// TryParseメソッドを使用する例
int tryParseResult;
bool isSuccess = int.TryParse(hexString, System.Globalization.NumberStyles.HexNumber, null, out tryParseResult); // 16進数表記の文字列を整数に変換し、変換成功かどうかをbool値で返す
if (isSuccess)
{
Console.WriteLine($"TryParse結果: {tryParseResult}"); // 変換成功時、結果を表示
}
else
{
Console.WriteLine("TryParseで変換に失敗しました。"); // 変換失敗時のメッセージ
}
}
}
サンプル3:16進数の文字列に0xがある場合
この場合は、先に”0x”を取り除いてからParse/TryParseを行います。以下はTryParseの例です。
using System;
class Program
{
static void Main()
{
string input = "0x1A3F"; // "0x" プレフィックスを含むかもしれない16進数表記
// "0x" プレフィックスがある場合は取り除く
string hexString = input.StartsWith("0x") ? input.Substring(2) : input;
// TryParseメソッドを使用して変換
int result;
if (int.TryParse(hexString, System.Globalization.NumberStyles.HexNumber, null, out result))
{
Console.WriteLine($"変換結果: {result}"); // 変換成功時、結果を表示
}
else
{
Console.WriteLine("変換に失敗しました。"); // 変換失敗時のメッセージ
}
}
}
まとめ
本記事では、C#で16進数表記の文字列を数値に変換するサンプルコードを紹介しました。