C#二进制常量表示

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

int a = 0xAF2323F5; 

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

从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. } 

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

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

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

可以使用扩展方法:

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

但是,这是否明智,我会留给你(鉴于它将在任何字符串上运行)。

从Visual Studio 2017开始,支持像0b00001这样的二进制文字。