1
我已經拿出以下內容來表示使用無符號整數的二進制文件。例如:0x1111
存儲爲0xf(15)
。
我知道,已經有像BOOST_BINARY
,C++14
二進制文字和宏技巧來表示一個二進制數的解決方案。
我只是希望得到這個模板的工作(受到因子例子的啓發)。
以下解決方案對我手頭的任務已經足夠了。將無符號整數半字節視爲二進制壓縮爲無符號整數
任何想法如何擴展到uint64_t
與模板,而不是宏(也沒有C++14
但只有C++11
)或如何改善這個/循環漏洞?我只是好奇。
由於
template <>
struct Uint64Nibbles2Binary<0x0>
{
enum {value = 0x0};
};
template <uint64_t num>
struct Uint64Nibbles2Binary
{
enum
{
value = (Uint64Nibbles2Binary<(num >> 4)>::value << 0x1) | (num & 0x1);
};
};
那麼,如果沒有別的東西,你可以擠在八進制比十六進制更多的數字。 – doynax