Skip to content

Proposal: Binary literals #215

Closed
Closed
@MadsTorgersen

Description

@MadsTorgersen

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-literal

binary-integer-literal:
0bbinary-digitsinteger-type-suffixopt
0Bbinary-digitsinteger-type-suffixopt

binary-digits:
binary-digit
binary-digitsbinary-digit

binary-digit:   one of
0 1

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions