C++ STL 中的 bitset 用法
2015-08-26 10:55
344 查看
#include <iostream>
#include <bitset>
int main()
{
std::bitset<8> bs(8);
std::cout << "输出所有binary bit: " << bs << std::endl;
std::cout << "bitset - any() 是否存在置为1的bit: " << std::boolalpha << bs.any() << std::noboolalpha << std::endl;
std::cout << "bitset - none() 是否不存在置为 1 的bit: " << bs.none() << std::endl;
std::cout << "bitset - count() bit为 1 的个数: " << bs.count() << std::endl;
std::cout << "bitset - size() bit的个数: " << bs.size() << std::endl;
bs.flip();
std::cout << "bitset - flip() 把所有bit逐位取反 后: " << bs << std::endl;
bs.flip(0);
std::cout << "bitset - flip(size_t pos) 把在pos(zero-based)处的bit 按位取反 后: " << bs << std::endl;
std::cout << "bitset - [] 使用[]操作符访问pos处的bit: " << bs[0] << std::endl;
bs.set();
std::cout << "bitset - set() 把所有的bit都置为1: " << bs << std::endl;
bs.set(0);
std::cout << "bitset - set(size_t pos) 把pos处的bit置为1: " << bs << std::endl;
std::cout << "bitset - test(size_t pos) 测试pos处的bit是否为1: " << std::boolalpha << bs.test(0) << std::noboolalpha << std::endl;
std::cout << "bitset - to_ulong() 返回一个unsigned long值: " << bs.to_ulong() << std::endl;
std::cout << "bitset - to_string() 返回一个std::string值: " << bs.to_string() << std::endl;
return 0;
}
输出:
![](http://hi.csdn.net/attachment/201104/26/6007_1303825803SAGv.png)
bitset<2> bs(1);
sizeof(bs); //大小为4
bitset<16> bs(11);
sizeof(bs); //大小为4
bitset<8> bs(11);
sizeof(bs); //大小为4
bitset<16> bs(11);
sizeof(bs); //大小为4
bitset<33> bs(11);
sizeof(bs); //大小为8
会报出错
#include <bitset>
int main()
{
std::bitset<8> bs(8);
std::cout << "输出所有binary bit: " << bs << std::endl;
std::cout << "bitset - any() 是否存在置为1的bit: " << std::boolalpha << bs.any() << std::noboolalpha << std::endl;
std::cout << "bitset - none() 是否不存在置为 1 的bit: " << bs.none() << std::endl;
std::cout << "bitset - count() bit为 1 的个数: " << bs.count() << std::endl;
std::cout << "bitset - size() bit的个数: " << bs.size() << std::endl;
bs.flip();
std::cout << "bitset - flip() 把所有bit逐位取反 后: " << bs << std::endl;
bs.flip(0);
std::cout << "bitset - flip(size_t pos) 把在pos(zero-based)处的bit 按位取反 后: " << bs << std::endl;
std::cout << "bitset - [] 使用[]操作符访问pos处的bit: " << bs[0] << std::endl;
bs.set();
std::cout << "bitset - set() 把所有的bit都置为1: " << bs << std::endl;
bs.set(0);
std::cout << "bitset - set(size_t pos) 把pos处的bit置为1: " << bs << std::endl;
std::cout << "bitset - test(size_t pos) 测试pos处的bit是否为1: " << std::boolalpha << bs.test(0) << std::noboolalpha << std::endl;
std::cout << "bitset - to_ulong() 返回一个unsigned long值: " << bs.to_ulong() << std::endl;
std::cout << "bitset - to_string() 返回一个std::string值: " << bs.to_string() << std::endl;
return 0;
}
输出:
![](http://hi.csdn.net/attachment/201104/26/6007_1303825803SAGv.png)
bitset<2> bs(1);
sizeof(bs); //大小为4
bitset<16> bs(11);
sizeof(bs); //大小为4
bitset<8> bs(11);
sizeof(bs); //大小为4
bitset<16> bs(11);
sizeof(bs); //大小为4
bitset<33> bs(11);
sizeof(bs); //大小为8
会报出错
相关文章推荐
- [DP]HDOJ1158 Employment Planning
- C语言判断大小端对齐
- C语言strtok()函数:字符串分割
- C++注释规范
- C++虚继承的内存模型
- VC++编写DLL供C#使用
- 链表排序问题
- C++指针加整数、两个指针相减的问题
- NOI系列赛中 C++容器使用总结
- C语言判断字符是否为可打印字符的方法
- 【POJ2031】【最小生成树】【g++ f c++ lf】
- C++函数匹配
- POJ C++程序设计 编程题#1 编程作业—继承与派生
- C语言 异步回调
- 九之再续:教你一步一步用c语言实现sift算法、上
- C++ Primer Plus 第四章笔记
- C++的深拷贝与浅拷贝
- C++语言的dll生成与使用
- 使用Visual Leak Detect or 检测c/ c++ 程序内存泄漏
- C++的const类成员函数