bitset的一些操作总结
/******************************************************************
** 文件名:bitset.cpp
** Copyright (c) 2009 *********
** 创建人: Xredman
** 日期: 6.2
** 修改人:
** 日期:
** 描述: 本程序实现对bitset的一些操作,主要用于熟悉位操作
**
** 版本:
**--------------------------------------------------------------------------
---
******************************************************************/
#include <iostream>
#include <bitset>
#include <string>
using namespace std;
int main()
{
/*-----声明-----*/
bitset<32> bt1;
/*位的计数从0开始,即0~31
缺省情况下,所有的位都被初始化为0
*/
bitset<32> bit2(0xffff);//位构造函数显式提供一个无符号参数
string bitval("1010");
bitset<32> bit3(bitval);
if(bt1.any())//当bitset对象含有一位或多位被置为1时,返回true
cout<<"初始化是含有1."<<endl;
else if(bt1.none())//当bitset对象不含有1时,返回true
cout<<"初始化是不含1."<<endl;
/*--------置位操作----------*/
bt1[26] = 1;//将26位设置为1
bt1.set(27);//将27位设置为1
bt1[26] = 0;//将26位设置为0
bt1.reset(26);//将26位设置为0
/*全部置位
bt1.set();
bt1.reset();*/
cout<<"被置为1的位数有:"<<bt1.count()<<endl;
//返回被置为1的的位的个数
if(bt1.test(27))//或者用下标操作符bt1[27]
cout<<"第27位被置为1."<<endl;
/*-----翻转操作-----*/
bt1.flip(0);//翻转第0位
bt1[1].flip();//翻转第1位
bt1.flip();//全部翻转
/*-----类型转化-----*/
string sbt = bt1.to_string();
unsigned long lbt = bt1.to_ulong();
return 0;
}
** 文件名:bitset.cpp
** Copyright (c) 2009 *********
** 创建人: Xredman
** 日期: 6.2
** 修改人:
** 日期:
** 描述: 本程序实现对bitset的一些操作,主要用于熟悉位操作
**
** 版本:
**--------------------------------------------------------------------------
---
******************************************************************/
#include <iostream>
#include <bitset>
#include <string>
using namespace std;
int main()
{
/*-----声明-----*/
bitset<32> bt1;
/*位的计数从0开始,即0~31
缺省情况下,所有的位都被初始化为0
*/
bitset<32> bit2(0xffff);//位构造函数显式提供一个无符号参数
string bitval("1010");
bitset<32> bit3(bitval);
if(bt1.any())//当bitset对象含有一位或多位被置为1时,返回true
cout<<"初始化是含有1."<<endl;
else if(bt1.none())//当bitset对象不含有1时,返回true
cout<<"初始化是不含1."<<endl;
/*--------置位操作----------*/
bt1[26] = 1;//将26位设置为1
bt1.set(27);//将27位设置为1
bt1[26] = 0;//将26位设置为0
bt1.reset(26);//将26位设置为0
/*全部置位
bt1.set();
bt1.reset();*/
cout<<"被置为1的位数有:"<<bt1.count()<<endl;
//返回被置为1的的位的个数
if(bt1.test(27))//或者用下标操作符bt1[27]
cout<<"第27位被置为1."<<endl;
/*-----翻转操作-----*/
bt1.flip(0);//翻转第0位
bt1[1].flip();//翻转第1位
bt1.flip();//全部翻转
/*-----类型转化-----*/
string sbt = bt1.to_string();
unsigned long lbt = bt1.to_ulong();
return 0;
}