C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > 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 と出力されます。
メモ:2進数は 0b または 0B で表記できます。8進数のリテラルは C# にはありません(C#10.0=2022年時点)。
参考:10進数で表記しても16進数で表記しても同じ値です。
令和4年が西暦の2022年と同じであるように、同じ値を10進数と16進数のどちらで表記しても同じです。
このプログラムでは &HFF と 255 が表記方法が違うだけで、同じであることが確認できます。
if (0xFF == 255)
{
Debug.WriteLine("同じ値です。"); // ←実行するとこれが出力されます。
}