Представление двоичных констант C # - PullRequest
8 голосов
/ 08 августа 2009

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

int a = 0xAF2323F5;

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

Ответы [ 4 ]

9 голосов
/ 08 августа 2009

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

int bin = Convert.ToInt32( "1010", 2 );
3 голосов
/ 17 декабря 2016

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

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

2 голосов
/ 08 августа 2009

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

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

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

0 голосов
/ 02 августа 2017

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

...