C++标准库bitset
来源:互联网 发布:最新万网域名证书 编辑:程序博客网 时间:2024/05/01 23:19
#include <bitset>#include <iostream>using namespace std;//using std::bitsetint main(){ //1.bitset对象的定义和初始化 //bitset<n> b; //b 有 n 位,每位都 0 //bitset<n> b(u); //b 是 unsigned long 型 u 的一个副本 //bitset<n> b(s); //b 是 string 对象 s 中含有的位串的副本,如果不是位串,会抛出异常 //bitset<n> b(s, pos, n); //b 是 s 中从位置 pos 开始的&nbps;n 个位的副本 //bitset<32> bitvec; // 32 bits, all zero //用unsigned值初始化bitset对象 //bitset<16> bitvec1(0xffff); // bits 0 ... 15 are set to 1 //bitset<32> bitvec2(0xffff); // bits 0 ... 15 are set to 1; 16 ... 31 are 0 //bitset<128> bitvec3(0xffff); // bits 32 through 127 initialized to zero //用string对象初始化bitset对象 //当用 string 对象初始化 bitset 对象时,string 对象直接表示为位模式。从 string 对象读入位集的顺序是从右向左(from right to left): //bitvec4 的位模式中第 2 和 3 的位置为 1,其余位置都为 0。如果 string 对象的字符个数小于 bitset 类型的长度,则高阶位置为 0。 //string strval("1100"); //bitset<32> bitvet4(strval); //string str("11110000"); //bitset<32> bitvec5(str, 3, 4); //starting at str[3] 1000 //bitset<32> bitvec6(str, str.size()-3); //如果省略第三个参数,意味着从开始位置一直到string末尾的所有字符, 本例为最后3个字符,即000 //2.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.any() b 中是否存在置为 1 的二进制位? //b.reset() 把 b 中所有二进制位都置为 0 //b.reset(pos) 把 b 中在 pos 处的二进制位置为 0 //b.flip() 把 b 中所有二进制位逐位取反 //b.flip(pos) 把 b 中在 pos 处的二进制位取反 //b.to_ulong() 用 b 中同样的二进制位返回一个 unsigned long 值 //os << b 把 b 中的位集输出到 os 流 //测试整个bitset //bitset<32> bitvec; //bool is_set = bitvec.any(); //bool is_not_set = bitvec.none(); //size_t bits_set = bitvec.count(); //size_t size = bitvec.size(); //return 32 //访问bitset对象中的位 //for (int i=0; i != 32; i += 2) //{ // bitvec[i] = 1; //} //for (int i=0; i != 32; i += 2) //{ // bitvec.set(i); //} //for (int i = 0; i != 32; i++) //{ // if (bitvec.test(i)) //or if(bitvec[i]) // { // } //} //对整个bitset对象进行设置 //bitvec.reset(); //set all bits 0 //bitvec.set(); //set all bits 1 //bitvec.flip(0); //对 bitvec[0] 取反 //bitvec[0].flip(); //对 bitvec[0] 取反 //bitvec.flip(); //对所有bit位取反 //获取bitset对象的值 //to_ulong 操作返回一个 unsigned long 值,该值与 bitset 对象的位模式存储值相同。 //仅当 bitset 类型的长度小于或等于 unsigned long 的长度时,才可以使用 to_ulong 操作 //如果 bitset 对象包含的二进制位数超过 unsigned long 长度,将会产生运行时异常 //unsigned long ulong = bitvec.to_ulong(); //输出二进制位 //bitset<32> bitvec(0xffff); //cout<<"bitvec = "<<bitvec<<endl; //bitvec = 00000000000000001111111111111111] return 0;}
0 0
- C++Simplify05-标准库bitset和数组
- 标准库bitset类型
- 标准库bitset类型
- 标准库bitset类型
- C++标准库bitset
- 标准库 bitset
- 标准库bitset类型
- 标准库bitset
- c++primer学习笔记(3.5)标准库bitset类型
- C++Primer学习札记_标准bitset库
- C++:标准库类型(string、vector、list、bitset)
- C++primer学习:标准库特殊设施:bitset
- 标准库bitset类型介绍
- C++标准库bitset类型
- 标准库 bitset 简单介绍
- 3.5 标准库bitset类型
- 第三章 标准库bitset
- C++ 标准库bitset类型
- ACM--steps--dyx--2.3.8--小兔的棋盘
- ASN.1语法及其公钥的理解
- android中View的scrollBy(int x,int y)和scrollTo(int x,int y)的区别
- 去掉数组中的指定的元素
- oracle中exp,imp的使用详解
- C++标准库bitset
- 服务器禁止多个ip来提供代理服务,
- 停止Hadoop或HBase集群的脚本
- Socket客户端
- 多台电脑操作同一个电脑的Oracle数据库步骤
- 引用不是变量,引用只是引用
- 第二个程序——播放AVI视频,并通过移动slider 控制视频播放
- msp430 学习经验总结
- 5.7.2 引用变量的强制类型转换