符号なし整数を使用してバイナリを表現するには、次のものを用意しました。例:0x1111
は0xf(15)
として格納されます。
私はすでにBOOST_BINARY
、C++14
バイナリ番号を表すバイナリリテラルとマクロトリックのような解決策があることを知っています。
私はちょうどテンプレート(ファクタリールの例に触発されている)でこれを動作させたいと思っていました。
次の解決策は、私の仕事のために十分です。符号なし整数ニブルは、符号なし整数に圧縮されたバイナリとして扱われます
これをテンプレートとマクロでなくC++14
(ただしC++11
のみ)を使用してuint64_t
以上に拡張する方法や、この/ループホールを改善する方法はありますか?ただ興味があるだけ。 C++ 14では
template <>
struct Uint64Nibbles2Binary<0x0>
{
enum {value = 0x0};
};
template <uint64_t num>
struct Uint64Nibbles2Binary
{
enum
{
value = (Uint64Nibbles2Binary<(num >> 4)>::value << 0x1) | (num & 0x1);
};
};
他に何もない場合は、16進数よりも8進数で多くの桁を絞り込むことができます。 – doynax