Я действительно озадачен этим. В C # существует шестнадцатеричный формат представления констант, как показано ниже:

int a = 0xAF2323F5;

Есть ли формат представления двоичных констант?

8
Andrei Rînea 8 Авг 2009 в 00:25

4 ответа

Лучший ответ

Начиная с 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.
}

Дополнительную информацию можно найти здесь .

3
Luis Teijon 16 Дек 2016 в 23:30

Начиная с Visual Studio 2017 поддерживаются двоичные литералы, такие как 0b00001.

0
Andreas 2 Авг 2017 в 06:29

Вы можете использовать метод расширения:

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

Однако, разумно ли это, я оставлю вам (учитывая тот факт, что он будет работать с любой строкой).

2
Dan Diplo 7 Авг 2009 в 20:44

Нет, в C # нет двоичных литералов. Конечно, вы можете проанализировать строку в двоичном формате с помощью Convert.ToInt32, но я не думаю, что это было бы отличным решением.

int bin = Convert.ToInt32( "1010", 2 );
9
Ed S. 7 Авг 2009 в 20:59