-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
There’s a relatively common request to add binary literals to C# and VB. For bitmasks (e.g. flag enums) this seems genuinely useful, but it would also be great just for educational purposes.
Binary literals would look like this:
int nineteen = 0b10011;Syntactically and semantically they are identical to hexadecimal literals, except for using b/B instead of x/X, having only digits 0 and 1 and being interpreted in base 2 instead of 16.
There’s little cost to implementing these, and little conceptual overhead to users of the language.
Syntax
The grammar would be as follows:
integer-literal:
...
binary-integer-literalbinary-integer-literal:
0bbinary-digits integer-type-suffixopt
0Bbinary-digits integer-type-suffixoptbinary-digits:
binary-digit
binary-digits binary-digitbinary-digit: one of
01