bitset クラス

[機能]

  N ビットのビット集合を表すクラスです.添字演算子で任意の位置のビット状態を確認でき,文字列と整数値との相互変換が可能です.
template <size_t N> class bitset		

[使用方法]
#include <bitset>
using namespace std;
bitset <N> 変数名;   // N : ビットの数,全てが 0
bitset <N> 変数名(unsigned long val);   // N : ビットの数
bitset <N> 変数名(string str);   // N : ビットの数		
[メンバー関数等]

[演算子の多重定義]
!=  ==  |  |=  &  &=  ^  ^=  ~  <<  <<=  >>  >>= []		

[使用例]

  1. bitset の使用方法です.
    #include <iostream>
    #include <bitset>
    
    using namespace std;
    
    int main()
    {
    	cout << boolalpha;   // bool の対し,1をtrue,それ以外をfalseで出力
    
    	bitset<5> b(3);   // bitset<5> b("00011");
    
    	cout << "初期状態: " << b << "  サイズ: " << b.size() << "  1の数: " << b.count() << endl;
    					// 設定
    	b[4] = 1;
    	b.set(3, 1);
    	cout << "設定(b[4], set(3,1)): " << b << endl;
    					// 参照
    	cout << "参照\n";
    	cout << "   b[0] " << b[0] << " test[0] " << b.test(0) << endl;
    	cout << "   none " << b.none() << " any " << b.any() << endl;
    					// 右シフト
    	b >>= 2;
    	cout << "2 ビット右シフト: " << b << endl;
    					// OR 演算
    	b |= bitset<5> (3);
    	cout << "00011 との OR 演算: " << b << endl;
    
    	return 0;
    }
    			
    (出力)
    初期状態: 00011  サイズ: 5  1の数: 2
    設定(b[4], set(3,1)): 11011
    参照
       b[0] true test[0] true
       none false any true
    2 ビット右シフト: 00110
    00011 との OR 演算: 00111			

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引