dynamic_bit установить печать? - PullRequest
       17

dynamic_bit установить печать?

0 голосов
/ 03 апреля 2009
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.

Что я должен сделать, чтобы битовый набор печатался правильно. Я могу поменять буфер символов, который мне известен :)

1 Ответ

1 голос
/ 03 апреля 2009
<unsigned car>

Должно быть:

<unsigned char>

Что такое buffer? Разве вы не должны использовать charBuff?

Используйте перегрузку operator<< в течение dynamic_bitset s, чтобы достичь того, что вы хотите. Вот упрощенное решение:

#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;
}
...