std::string charBuff = "11010";
dbitset = boost::dynamic_bitset<unsigned char> (charBuff);
for (boost::dynamic_bitset<>::size_type i = 0; i < dbitset.size(); ++i) {
std::cout << dbitset[i];
}
它从 LSB 打印到 MSB。输出:01011。
我应该怎么做才能正确打印 bitset。我可以反转我知道的字符缓冲区 :)
最佳答案
<unsigned car>
应该是:
<unsigned char>
什么是 buffer
?你不应该使用charBuff
吗? ?
使用 operator<<
dynamic_bitset
过载来实现你想要的。这是一个简化的解决方案:
#include <iostream>
#include <string>
#include <boost/dynamic_bitset.hpp>
int main()
{
std::string charBuff("11010");
boost::dynamic_bitset<> dbitset(charBuff);
/* print LSB to MSB, in order */
for (boost::dynamic_bitset<>::size_type i = 0;
i < dbitset.size(); ++i) {
std::cout << dbitset[i];
}
std::cout << std::endl;
/* print bits in the order you want */
std::cout << dbitset << std::endl;
return 0;
}
关于c++ - dynamic_bit 设置打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/712323/