文章來源於:http://blog.csdn.net/flyfish1986/article/details/3839581
二進制位的操作
在寫程序的時候有的時候要判斷二進制位進行操作例如是否爲1或者是否爲0.
利用C++ 提供的類庫就可以完成。
代碼如下
#include <bitset>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//size_t n=32;
const size_t n=32;
bitset<n> bit;//把bit定義在一個32位的bitset對象,這裏的n必須是常數,n是變量的錯誤的
bit=65535;//將65535賦值給bit
cout<<bit.size()<<endl;//二進制位個數(包括1和0)
cout<<bit.count()<<endl;//二進制位中1的個數
cout<<_T("第15位是:")<<bit.test(15)<<endl;//查看第15位是1還是0
cout<<_T("第16位是:")<<bit.test(16)<<endl;//查看第16位是1還是0
bit.set(16);//將第16位設置爲1
cout<<_T("更改之後第16位是:")<<bit.test(16)<<endl;//查看第16位是1還是0
//輸出所有的二進制位
for (int i=0;i<bit.size();i++)
{
cout<<bit.test(i);
}
cout<<endl;
bit.flip();//二進制全部取反
for (int i=0;i<bit.size();i++)
{
cout<<bit.test(i);
}
cout<<endl;
bit.set();//二進制位全部設置成1
for (int i=0;i<bit.size();i++)
{
cout<<bit.test(i);
}
cout<<endl;
bit.reset();//二進制位全部設置成0
for (int i=0;i<bit.size();i++)
{
cout<<bit.test(i);
}
return 0;
}