您的位置:首页 > 编程语言 > C语言/C++

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;
}

输出:



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

会报出错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: