2進数表記があると便利ですが、言語仕様には備わっていません。 ここではテンプレートを使って2進数表記を実現します。 binary.h #ifndef BINARY_H #define BINARY_H // '0', '1' 以外の表記を禁止するためのテンプレート template<int N> struct Bit; template<> struct Bit<0> { static const int value = 0; }; template<> struct Bit<1> { static const int value = 1; }; // '0'と'1'からなる8進数の値を2進数の値に読み替えるテンプレート template<int N> struct Bin { static const int value = Bin<N / 8>::