C# 7.0以降では、数値リテラルにプレフィックス0b
を前置することで2進数表記で整数リテラルを記述できます。 桁揃えのために数値の先頭に0
を並べることもできます。 また、桁区切り文字としてアンダースコア_
を入れることもできます。
using System;
class Sample {
static void Main()
{
var a = 100; // 10進数で表された数値'100'
var b = 0b0100; // 2進数で表された数値'100'
var c = 0b1111_1111_1111_1111; // 2進数で表された数値'1111111111111111'
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine();
// 変数の値を2進数表記の文字列に変換して表示
Console.WriteLine(a.ToString("B"));
Console.WriteLine(b.ToString("B"));
Console.WriteLine(c.ToString("B"));
}
}
実行結果
100 4 65535 1100100 100 1111111111111111
2進数形式に変換する書式指定子B
は.NET 8以降で使用できます。 ToStringメソッドによる数値の文字列化と、2進形式の書式指定子B
については書式指定子 §.B, b (binary/2進数)を参照してください。
それ以前のバージョンで2進数形式に文字列化したい場合はConvertクラスを使用します。