为什么bitset以相反的顺序存储位?我经过多次挣扎终于写出了这个binary_to_dec函数,它能简化吗?
int binary_to_dec(std::string bin)
{
std::bitset<8> bit;
int c = bin.size();
for (size_t i = 0; i < bin.size(); i++,c--)
{
bit.set(c-1, (bin[i]-'0' ? true : false));
}
return bit.to_ulong();
}
std::string bin = "1011"
,但是bitset要求它按顺序为"1101"
。 - user4344bitset
并不需要任何东西!它基本上只是一个数组,而to_ulong()
仅仅计算bit[0]*2^0 + bit[1]*2^1 + bit[2]*2^2 + ...
(其中^
表示“乘方”)。 - Oliver Charlesworthbitset
以小端方式公开位? - legends2k