C# 7.0以降では、数値リテラルにプレフィックス0b
を前置することで2進数表記で整数リテラルを記述できます。 桁揃えのために数値の先頭に0
を並べることもできます。 また、桁区切り文字としてアンダースコア_
を入れることもできます。
2進整数リテラルを使って2進数値を記述する C# 7.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(Convert.ToString(a, 2));
Console.WriteLine(Convert.ToString(b, 2));
Console.WriteLine(Convert.ToString(c, 2));
}
}
実行結果
100 4 65535 1100100 100 1111111111111111
16進整数形式とは異なり、2進数形式に変換する書式指定子は現在のところ定義されていないので、2進数形式で文字列化したい場合はConvertクラスを使用します。