2009-08-07 41 views
8

Tôi thực sự bối rối về điều này. Trong C# có định dạng biểu diễn hằng số thập lục phân như sau:C# hằng số nhị phân đại diện

int a = 0xAF2323F5; 

có định dạng biểu diễn hằng số nhị phân không?

+0

Ý của bạn là gì? const int a = 2938315765; – Paco

+1

Cảm ơn bạn, tôi đoán kết quả của bạn là chính xác nhưng tôi đã tìm kiếm giải pháp hệ thống. Tôi có nên gửi một câu hỏi stackoverflow cho mỗi nhị phân liên tục tôi cần phải chuyển đổi? –

+0

.. ví dụ 10110011 –

Trả lời

3

Tính đến C# 7 bạn có thể đại diện cho một giá trị văn chương nhị phân trong mã:

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

Thông tin bổ sung có thể được tìm thấy here.

9

Không, không có chữ nhị phân nào trong C#. Bạn có thể phân tích cú pháp một chuỗi trong định dạng nhị phân bằng cách sử dụng Convert.ToInt32, nhưng tôi không nghĩ rằng đó sẽ là một giải pháp tuyệt vời.

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

Tôi sẽ để câu hỏi mở trong vài giờ nhưng đây là câu trả lời đầu tiên, nếu nó chứng minh là đúng, nó sẽ được chọn làm câu trả lời chính thức. Cảm ơn bạn. –

+2

Đó là sự thật ... cũng có thể chấp nhận ngay bây giờ. –

+0

Đúng, hoạt động và hữu ích trong hầu hết các trường hợp. Thật không may nó không hoạt động nếu bạn đang sử dụng nó trong một 'switch (myVariable) {case bin: Console.WriteLine (" value detected "); phá vỡ; } 'statement, vì' case' chỉ cho phép các hằng số. – Matt

2

Bạn thể sử dụng một phương pháp khuyến nông:

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

Tuy nhiên, cho dù đây là khôn ngoan Tôi sẽ để lại tùy thuộc vào bạn (vì thực tế nó sẽ hoạt động trên bất kỳ chuỗi).

0

Kể từ Visual Studio 2017, các số nhị phân như 0b00001 được hỗ trợ.

+0

Đây có phải là câu trả lời của [câu trả lời hiện có này] không (https://stackoverflow.com/a/41193863)? – Pang

+0

xin lỗi, nhưng tôi muốn tìm ra rằng VS vừa được phát hành hỗ trợ việc sử dụng như vậy, hy vọng điều này sẽ giúp. – Xiaoyuvax

Các vấn đề liên quan