C#の16進数(X)形式指定子とは?使い方とサンプルコードをわかりやすく解説
16進数("X")形式指定子とは
C#の標準数値書式指定文字列の一つである「X」(または「x」)形式指定子は、整数値を16進数表記の文字列へと変換するために使用されます。デバッグ時の値確認やビット演算の結果表示、データのダンプ出力など、さまざまな場面で役立つ便利な書式です。
大文字と小文字の違い
形式指定子に使うアルファベットの大文字・小文字によって、9より大きい16進数の桁(A〜F)の出力形式が変わります。
- 「X」:大文字で出力される(例:149A8C80)
- 「x」:小文字で出力される(例:149a8c80)
つまり、「X」を指定すれば ABCDEF のような大文字、「x」を指定すれば abcdef のような小文字で16進数が表示されます。
サンプルコード
using System;
using System.Numerics;
using System.Globalization;
class Demo {
static void Main() {
int num;
num = 345672832;
Console.WriteLine(num.ToString("X"));
Console.WriteLine(num.ToString("X2"));
num = 0x307e;
Console.WriteLine(num.ToString("x"));
Console.WriteLine(num.ToString("X"));
}
}
実行結果
149A8C80 149A8C80 307e 307E
コードの解説
このサンプルでは、まず整数 345672832 を「X」と「X2」の両方で変換しています。「X2」のように形式指定子の後に数字を付けると、出力される文字列の最小桁数を指定できます。元の数値がその桁数より長い場合は、実際の桁数のまま表示されるため、この例ではどちらも同じ結果になっています。
続いて、16進リテラル 0x307e を「x」と「X」でそれぞれ変換しています。「x」を指定した場合は小文字の「307e」、「X」を指定した場合は大文字の「307E」が出力され、大文字・小文字による出力の違いを確認できます。
まとめ
16進数形式指定子を使えば、ToString() メソッド一つで数値を簡単に16進数文字列へ変換できます。大文字なら「X」、小文字なら「x」を使い分けることで、目的に応じた表記を選択できるのがポイントです。
-
C#で数値を16進形式で出力する方法
C#では、標準の書式指定子を利用するだけで、整数値を簡単に16進数形式へ変換して表示できます。ここでは、具体的なサンプルコードとともに、その方法をわかりやすく解説します。 変換対象の数値 まず、例として次のような整数値を用意します。 int a = 12250; 16進形式の書式指定子 この数値を16進形式で表示するには、以下の4種類の書式指定子が使えます。それぞれ出力結果の見え方が異なるので、用途に応じて使い分けましょう。 {0:x} {0:x8} {0:X} {0:X8} 各指定子の意味は次のとおりです。 {0:x} … 英小文字(a〜f)を使った16進数で出力します。 {0:x8} …
-
C#でTimeSpanをhh:mm:ss形式にフォーマットする方法
C#では、TimeSpan構造体の値を「hh:mm:ss」形式で簡単にフォーマットして表示することができます。カスタム書式指定子を使えば、時間・分・秒を自由な形式で出力可能です。 TimeSpanの設定 まず、フォーマット対象となるTimeSpanオブジェクトを作成します。 TimeSpan ts = new TimeSpan(9, 15, 30); この例では、9時間15分30秒を表すTimeSpanを作成しています。 TimeSpanをフォーマットするには TimeSpanを「hh:mm:ss」形式でフォーマットするには、次のような書式指定文字列を使用します。 {0:hh\:mm\:ss