ヘッダー
C# サンプル集
 

16進数で数値リテラルを表記する

2022/9/4

→ Visual Basic のサンプルに切り替える → Python のサンプルに切り替える

 

16進数で数値リテラルを表記する

先頭に 0x または 0X を付けた数値リテラルは16進数 で解釈されます。 (0x は 数字のゼロ と エックス です。)

//標準的な方法。0x123 は 16進数なので10進数表記だと 291 です。
int i1 = 0x123;
System.Diagnostics.Debug.WriteLine(i1); // 291 と出力されます。

//16進数なので、A~F の文字も使えます。
int i2 = 0xB2;
System.Diagnostics.Debug.WriteLine(i2); // 178 と出力されます。

//お好みの位置に _ を追加して見やすく整えることができます。
int i3 = 0x47_A6_BC; // 0x47A6BC と表記しても同じです。
System.Diagnostics.Debug.WriteLine(i3); // 4695740 と出力されます。


//おまけ。16進数表記の文字列に変換するには、書式指定子 X を使用します。
string s1 = $"{i3:X}";
System.Diagnostics.Debug.WriteLine(s1); // 47A6BC と出力されます。

Debug.WriteLineが表示される場所

メモ:2進数は 0b または 0B で表記できます。8進数のリテラルは C# にはありません(C#10.0=2022年時点)。

 

 

参考:10進数で表記しても16進数で表記しても同じ値です。

令和4年が西暦の2022年と同じであるように、同じ値を10進数と16進数のどちらで表記しても同じです。

このプログラムでは &HFF と 255 が表記方法が違うだけで、同じであることが確認できます。

if (0xFF == 255)
{
    Debug.WriteLine("同じ値です。"); // ←実行するとこれが出力されます。
}

Debug.WriteLineが表示される場所