代码之家  ›  专栏  ›  技术社区  ›  Andrei Rînea

C二进制常量表示法

  •  8
  • Andrei Rînea  · 技术社区  · 15 年前

    这件事我真是受不了了。在C中,十六进制常量表示格式如下:

    int a = 0xAF2323F5;
    

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

    4 回复  |  直到 7 年前
        1
  •  3
  •   Luis Teijon Khan    8 年前

    从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
  •  9
  •   Ed Swangren    15 年前

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

    int bin = Convert.ToInt32( "1010", 2 );
    
        3
  •  2
  •   Dan Diplo    15 年前

    能够 使用扩展方法:

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

    然而,不管这是否明智,我都将由您决定(考虑到它将在任何字符串上操作)。

        4
  •  0
  •   Andreas buildpax    7 年前

    自Visual Studio 2017以来,支持二进制文本(如0b00001)。