c++ bitset 操作

#include "stdafx.h"
#include <iostream>
#include <bitset>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
bitset<32> bitvec(8);
bool flag = bitvec.any();//判断是否存在某位或者多位为1,有则返回true
bool flag1 = bitvec.none();//判断是否所有的位都是0,是则返回true
bool flag2 = bitvec.test(3);//测试第4位是否为1,是则返回true
cout<<"第4位为:"<<bitvec[3]<<endl;//输出第4位的值
bitvec.reset(3);//将第4位设置为0,或者bitvec[3] = 0
cout<<"第4位为:"<<bitvec[3]<<endl;//输出第4位的值
bitvec.reset();//将所有位设置为0
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
bitvec.set();//将所有位设置为1
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
bitvec = 8;
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
bitvec.flip();//将所有的位翻转
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
bitvec.flip(0);//翻转第一位
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
bitvec = 0xffff;//设置低16位为1
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
bitvec = 012;//用八进制值012设置bitvec
cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
string bit = "1011";
bitset<32> bitvec1(bit);//用字符串对象初始化bitset<32>对象
cout<<"bitvec1的值为:"<<bitvec1.to_string()<<endl;
string bit1 = "1111110101100011010101";
bitset<32> bitvec2(bit1,6);//用 从第6位开始到字符串结束 这一部分 初始化bitvec2
cout<<"bitvec2的值为:"<<bitvec2.to_string()<<endl;
bitset<32> bitvec3(bit1,6,4);//用 从第6位开始,长度为4 这一部分 初始化bitvec3;
cout<<"bitvec3的值为:"<<bitvec3.to_string()<<endl;
}
posted @ 2011-10-25 13:42  韩冬冬  阅读(471)  评论(0编辑  收藏  举报