C#二进制常量表示

时间:2009-08-07 20:25:24

标签: c# binary format constants representation

我真的很难过这个。在C#中,有一个十六进制常量表示格式如下:

int a = 0xAF2323F5;

是否有二进制常量表示格式?

4 个答案:

答案 0 :(得分:9)

不,C#中没有二进制文字。您当然可以使用Convert.ToInt32以二进制格式解析字符串,但我认为这不是一个很好的解决方案。

int bin = Convert.ToInt32( "1010", 2 );

答案 1 :(得分:3)

从C#7开始,您可以在代码中表示二进制文字值:

private static void BinaryLiteralsFeature()
{
    var employeeNumber = 0b00100010; //binary equivalent of whole number 34. Underlying data type defaults to System.Int32
    Console.WriteLine(employeeNumber); //prints 34 on console.
    long empNumberWithLongBackingType = 0b00100010; //here backing data type is long (System.Int64)
    Console.WriteLine(empNumberWithLongBackingType); //prints 34 on console.
    int employeeNumber_WithCapitalPrefix = 0B00100010; //0b and 0B prefixes are equivalent.
    Console.WriteLine(employeeNumber_WithCapitalPrefix); //prints 34 on console.
}

可以找到更多信息here

答案 2 :(得分:2)

可以使用扩展方法:

public static int ToBinary(this string binary)
{
    return Convert.ToInt32( binary, 2 );
}

然而,这是否明智我会留给你(鉴于它将对任何字符串进行操作)。

答案 3 :(得分:0)

自Visual Studio 2017起,支持像0b00001这样的二进制文字。