1. 程式人生 > >c++ bitset例子

c++ bitset例子

#include<iostream>
#include<bitset>
using namespace std;

int main(){
	//建立一個8位長的bitset
	bitset<8> bs;
	//顯示這個bitset
	cout<<"顯示這個bitset"<<endl;
	for(int i=(int)bs.size();i>0;){
		i--;
		cout<<bs[i]<<" ";
	}
	cout<<endl;
	//建立另一個bitset
	bitset<8> bs2((long)131);
	cout<<"顯示另一個bitset"<<endl;
	for(int i=(int)bs2.size();i>0;){
		i--;
		cout<<bs2[i]<<" ";
	} 
	cout<<endl;
	cout<<endl;
	//建立一個bitset
	bitset<8> bs3((long)135);
	cout<<"bs3 is "<<bs3<<endl;
	cout<<"向左移動4位"<<endl;
	bs3<<=4;
	cout<<"now bs3 is "<<bs3<<endl;
	cout<<"bitset中被設定成1的位的個數"<<endl; 
	cout<<bs3.count()<<endl;
	
	cout<<"反轉bitset中所有的位,即將1設為0,0設為1.如果指定pos,那麼只有pos上的位被反置"<<endl;
	bs3.flip(1);
	cout<<"now bs3 is "<<bs3<<endl;
	cout<<"重置bitset(全部設為0),如果指定pos,那麼只有pos上的位被重置"<<endl;
	bs3.reset(1);
	cout<<"now bs3 is "<<bs3<<endl;
	cout<<endl;
	cout<<endl;
	cout<<"函式設定bitset上所有的位,然後返回bitset。如果指定pos,那麼只有pos上的位數被設定"<<endl;
	bs3.set(1,1);
	cout<<"now bs3 is "<<bs3<<endl;
	cout<<"返回bitset能容納的位"<<endl;
	
	cout << bs3.size() << endl;
	
	cout<<"函式返回在pos上的位"<<endl;
	cout<<bs3.test(1)<<endl;
	cout<<"函式返回bitset的字串格式"<<endl;
	cout<<bs3.to_string()<<endl;
	cout<<"返回bitset的無符號長整數形式"<<endl;
	cout<<bs3.to_ulong()<<endl;
	
	cout<<"-----------------------------------------------"<<endl;
	return 0;
}