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

C#で整数を16進数に変換する方法、および16進数から整数へ戻す方法

C#では、整数(int)と16進数の文字列を相互に変換する場面がよくあります。この記事では、整数を16進数に変換する方法と、16進数を整数に戻す2つの方法(int.ParseConvert.ToInt32)を、サンプルコード付きで解説します。

整数を16進数に変換する

整数値を16進数の文字列に変換するには、ToString()メソッドに書式指定子「X」を指定します。

string hexValue = integerValue.ToString("X");

小文字の16進数にしたい場合は「x」を指定します。また、桁数を揃えたい場合は「X4」のように桁数を指定することも可能です。

サンプルコード

using System;
namespace DemoApplication{
    public class Program{
        public static void Main(){
            int integerValue = 500;
            Console.WriteLine($"Integer Value: {integerValue}");
            string hexValue = integerValue.ToString("X");
            Console.WriteLine($"Hexadecimal Value: {hexValue}");
            Console.ReadLine();
        }
    }
}

実行結果

上記のコードを実行すると、次の出力が得られます。

Integer Value: 500
Hexadecimal Value: 1F4

16進数を整数に変換する

16進数の文字列を整数に変換するには、主に以下の2つの方法があります。

  • int.Parse:数値の文字列形式を32ビット符号付き整数(int)に変換します。NumberStyles.HexNumberを指定することで16進数として解析できます。なお、無効な文字列を渡すと例外がスローされるため、失敗の可否を戻り値で確認したい場合はint.TryParseの利用が推奨されます。
  • Convert.ToInt32:指定した値を32ビット符号付き整数に変換します。第2引数に基数「16」を渡すことで、16進数の文字列を整数に変換できます。

int.Parseを使った例

using System;
namespace DemoApplication{
    public class Program{
        public static void Main(){
            string hexValue = "1F4";
            Console.WriteLine($"Hexadecimal Value: {hexValue}");
            int integerValue = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
            Console.WriteLine($"Integer Value: {integerValue}");
            Console.ReadLine();
        }
    }
}

実行結果

Hexadecimal Value: 1F4
Integer Value: 500

Convert.ToInt32を使った例

using System;
namespace DemoApplication{
    public class Program{
        public static void Main(){
            string hexValue = "1F4";
            Console.WriteLine($"Hexadecimal Value: {hexValue}");
            int integerValue = Convert.ToInt32(hexValue, 16);
            Console.WriteLine($"Integer Value: {integerValue}");
            Console.ReadLine();
        }
    }
}

実行結果

Hexadecimal Value: 1F4
Integer Value: 500

まとめ

目的使用するメソッドポイント
整数 → 16進数ToString("X")「x」で小文字、「X4」などで桁数指定も可能
16進数 → 整数int.ParseNumberStyles.HexNumberを指定。入力が不正だと例外発生
16進数 → 整数Convert.ToInt32基数として「16」を指定するだけなのでシンプル

どちらの方法でも同じ結果が得られますが、ユーザー入力など不確実なデータを扱う場合は例外処理を考慮し、int.TryParseとの使い分けを検討すると安全です。

  1. GoogleドキュメントをMicrosoft Word(.docx)に変換する方法【逆パターンも解説】

    Googleドキュメントは、アクセスや共有、文書への署名が手軽に行えることから、多くのユーザーに愛用されているサービスです。しかし、オフラインでの利用や他ツールとの互換性を考えると、DOCXといった定番フォーマットが必要になる場面もあります。Googleドキュメントに保存したファイルのオフラインコピーが必要な場合は、Microsoft Word形式への変換がとても簡単に行えます。本記事ではその逆の手順、つまりWord文書(.docx)をGoogleドキュメント形式に変換して開く方法についても併せてご紹介します。注意:GoogleドキュメントからWordへの変換は可能ですが、変換時に元の書式が完

  2. Install.WIMとInstall.ESDを相互変換する4つの方法【DISM・フリーツール活用】

    これまでのチュートリアルでは、「Install.ESD」を「Install.WIM」に変換する方法や、Windows 10の修復に必要な正しい「install.wim」イメージファイルを抽出する方法をご紹介しました。本記事では、install.wimをinstall.esdに変換し、DISMによるWindowsの修復やUSBメモリからのWindowsインストールに活用できるようにするための詳細な手順を解説します。 ここでは、Windows 10/8/8.1環境において、install.wimからinstall.esdを書き出す方法、およびその逆の変換を行う方法を複数ご紹介します。 Instal