【C#】16進数表記の文字列を整数に変換(0xで始まる場合も)

C#

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("変換に失敗しました。"); // 変換失敗時のメッセージ
        }
    }
}
タイトルとURLをコピーしました