Can I use a binary literal in C or C++? Can I use a binary literal in C or C++? c c

Can I use a binary literal in C or C++?


If you are using GCC then you can use a GCC extension (which is included in the C++14 standard) for this:

int x = 0b00010000;


You can use binary literals. They are standardized in C++14. For example,

int x = 0b11000;

Support in GCC

Support in GCC began in GCC 4.3 (see https://gcc.gnu.org/gcc-4.3/changes.html) as extensions to the C language family (see https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions), but since GCC 4.9 it is now recognized as either a C++14 feature or an extension (see Difference between GCC binary literals and C++14 ones?)

Support in Visual Studio

Support in Visual Studio started in Visual Studio 2015 Preview (see https://www.visualstudio.com/news/vs2015-preview-vs#C++).


template<unsigned long N>struct bin {    enum { value = (N%10)+2*bin<N/10>::value };} ;template<>struct bin<0> {    enum { value = 0 };} ;// ...    std::cout << bin<1000>::value << '\n';

The leftmost digit of the literal still has to be 1, but nonetheless.