U E D R S I H C RSS
ID
Password
Join
눈물 젖은 빵은 먹어 본 사람만이 그 진가를 안다. - A. 링컨

 * 원문 메뉴얼 : [http]http://www.boost.org/libs/dynamic_bitset/dynamic_bitset.html
  • [http]std::bitset을 조금 개량한 것입니다. std::bitset은 템플릿 매개변수로 비트 길이를 받지만, boost::dynamic_bitset은 생성자 매개변수로 비트길이를 받는다는 점이 다릅니다. 즉, dynamic_bitset쪽은 프로그램 실행중 입력값에 따라 비트 길이를 설정할 수 있다는 점에서 더 융통성이 있습니다. (물론 고정 비트 버퍼를 쓴다면 상관없겠지만요)
  • 필요할 경우가 많지는 않겠지만, std::bitset으로 해결이 어려울 경우 필요할 수도...
  • std::bitset이든 boost::dynamic_bitset에서든 문자열형태로 뽑아내려면 iostream 계열을 사용하여야합니다. (즉, 고전적인 printf()로는 안됩니다)
  • bitset예제입니다. (sgi 메뉴얼에서 퍼온것입니다)
#include <iostream>
#include <bitset>

using namespace std;

int main() {
  const bitset<12> mask(2730ul); 
  cout << "mask =      " << mask << endl;

  bitset<12> x;

  cout << "Enter a 12-bit bitset in binary: " << flush;
  if (cin >> x) {
    cout << "x =        " << x << endl;
    cout << "As ulong:  " << x.to_ulong() << endl;
    cout << "And with mask: " << (x & mask) << endl;
    cout << "Or with mask:  " << (x | mask) << endl;
  }
}
동일하게 실행되지만 dynamic_bitset을 사용한 경우입니다.
#include <iostream>
#include <boost/dynamic_bitset.hpp>

using namespace std;
using namespace boost;

int main() {
  const dynamic_bitset<> mask(12, 2730ul); // <-- 이 부분이 다릅니다!
  cout << "mask =      " << mask << endl;

  dynamic_bitset<> x(12);                  // <-- 생성자 매개변수를 지정한 것이 다릅니다.

  cout << "Enter a 12-bit bitset in binary: " << flush;
  if (cin >> x) {
    cout << "x =        " << x << endl;
    cout << "As ulong:  " << x.to_ulong() << endl;
    cout << "And with mask: " << (x & mask) << endl;
    cout << "Or with mask:  " << (x | mask) << endl;
  }
}
선언부를 제외하고 동일하다는 점을 알 수 있습니다.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.0300 sec