8

我真的被这个难住了。在 C# 中有如下十六进制常量表示格式:

int a = 0xAF2323F5;

有二进制常量表示格式吗?

4

4 回答 4

9

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

int bin = Convert.ToInt32( "1010", 2 );
于 2009-08-07T20:26:35.803 回答
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.
}

更多信息可以在这里找到。

于 2016-12-16T23:30:05.467 回答
2

可以使用扩展方法:

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

但是,这是否明智我将由您决定(考虑到它将在任何字符串上运行)。

于 2009-08-07T20:44:01.307 回答
0

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

于 2017-08-02T06:12:07.027 回答