2009-04-03 6 views
0
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.dynamic_bit set print?

비트 세트가 올바르게 인쇄되도록하려면 어떻게해야합니까?

<unsigned char> 

buffer은 무엇입니까 : 나는 :)

답변

1
<unsigned car> 

가되어야한다 알고 문자 버퍼를 반전 할 수 있습니까? charBuff을 사용해야하지 않습니까?

dynamic_bitset에 대해 operator<< 오버로드를 사용하여 원하는 것을 달성하십시오. 다음은 간단한 솔루션입니다.

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