bitset练习
来源:互联网 发布:手机版易语言编程apk 编辑:程序博客网 时间:2024/06/05 12:39
标准库提供的bitset类简化了位集的处理。bitset其实很简单,只是因为它不如vector和string那样常用,所以很多人都放弃了这么好用的工具。
头文件:#include<bitset>
常用的成员函数:
b.any() b中是否存在置为1的二进制位?
b.none() b中不存在置为1的二进制位吗?
b.count() b中置为1的二进制位的个数
b.size() b中二进制位数的个数
b[pos] 访问b中在pos处二进制位
b.test(pos) b中在pos处的二进制位置为1么?
b.set() 把b中所有二进制位都置为1
b.set(pos) 把b中在pos处的二进制位置为1
b.reset( ) 把b中所有二进制位都置为0
b.reset( pos ) 把b中在pos处的二进制位置置为0
b.flip( ) 把b中所有二进制位逐位取反
b.flip( pos ) 把b中在pos处的二进制位取反
b.to_ulong( ) 把b中同样的二进制位返回一个unsigned
os << b 把b中的位集输出到os流
参考资料:《C++ Primer》
MSDN:http://msdn.microsoft.com/zh-cn/library/zfae7kt8.aspx
#include <iostream>#include <string>#include <bitset>using namespace std;int main(){string str = "10011";bitset<9>bitvec(str);// 0,1,4为置1,其余为0string str2 = "Hello,world";//bitset<500>b2(str2); //errorsize_t bits_set = bitvec.size();cout << "bitvec.size()" << bits_set << endl;cout << bitvec << endl; //可以直接输出cout << "ulong = " <<bitvec.to_ulong() <<endl << endl;bitvec.flip();bits_set = bitvec.size();cout << "bitvec.size()" << bits_set << endl;cout << bitvec << endl;cout << "ulong = " <<bitvec.to_ulong() <<endl << endl;bitvec.reset();bits_set = bitvec.size();cout << "bitvec.size()" << bits_set << endl;cout << bitvec << endl;cout << "ulong = " <<bitvec.to_ulong() <<endl << endl;return 0;}
执行结果如下所示:
bitvec.size()9
000010011
ulong = 19
bitvec.size()9
111101100
ulong = 492
bitvec.size()9
000000000
ulong = 0
请按任意键继续. . .
- bitset练习
- bitset小练习
- Linux下编程练习——bitset
- bitset
- bitset
- BitSet
- bitset
- bitset
- BitSet
- bitset
- bitset
- bitset
- bitset
- bitset
- BitSet
- bitset
- bitset
- Bitset
- 【redhat5.5】linux中的计划任务
- javascript关于IE和火狐处理event处理数据的问题
- Bootloader的启动过程
- linux驱动基础开发0——linux 设备驱动概述
- 2440串口编程
- bitset练习
- 教你安装RVM,ruby,rails
- SQL简单存储过程的创建
- 从android跨入ios的学习经历一
- 坦克大战之声音处理类(四)
- 兼容性测试
- 修改Jar文件的打开方式
- 校验和计算
- oracle连接字符串详解