以下是一些位运算的操作
首先一共有n个元素
设定任意一个集合S
一个集合T
空集: .......0
只含有第i个元素的集合: .......1<<i
含有全部n个元素的集合: ........ (1<< n) -1
判断第i个元素是否属于集合S: .....if( S >> i &1 )
向集合中加入第i个元素: ........ S |1<< i
从集合中除去第i个元素: ........ S & ~(1<< i)
集合S和集合T的并集: ....... S | T
集合S和集合T的交集: ....... S & T
#include<iostream>usingnamespacestd;
int main(){
int S = 0;//空集00000000
S = S | 1 << 3;//向集合中加入第i个元素(从0开始数)//判断第i个元素是否属于集合S: ..... if( S >> i & 1 ) if( S >> 3 & 1 ){
cout<<"yes"<<endl;
} else{
cout<<"No"<<endl;
}
S = S & ~(1 << 3);//从集合中除去第i个元素: ........ S & ~(1 << i) if( S >> 3 & 1 ){
cout<<"yes"<<endl;
} else{
cout<<"No"<<endl;
}
cout<<(1 << S) - 1<<endl;
cout<<S<<endl;
return0;
}