C++ STL 中的 bitset 用法

  1. #include <iostream>   
  2. #include <bitset>   
  3. int main()  
  4. {  
  5.     std::bitset<8> bs(8);  
  6.     std::cout << "输出所有binary bit: " << bs << std::endl;  
  7.     std::cout << "bitset - any() 是否存在置为1的bit: " << std::boolalpha << bs.any() << std::noboolalpha << std::endl;  
  8.     std::cout << "bitset - none() 是否不存在置为 1 的bit: " << bs.none() << std::endl;  
  9.     std::cout << "bitset - count() bit为 1 的个数: " << bs.count() << std::endl;  
  10.     std::cout << "bitset - size() bit的个数: " << bs.size() << std::endl;  
  11.     bs.flip();  
  12.     std::cout << "bitset - flip() 把所有bit逐位取反 后: " << bs << std::endl;  
  13.     bs.flip(0);  
  14.     std::cout << "bitset - flip(size_t pos) 把在pos(zero-based)处的bit 按位取反 后: " << bs << std::endl;  
  15.     std::cout << "bitset - [] 使用[]操作符访问pos处的bit: " << bs[0] << std::endl;  
  16.     bs.set();  
  17.     std::cout << "bitset - set() 把所有的bit都置为1: " << bs << std::endl;  
  18.     bs.set(0);  
  19.     std::cout << "bitset - set(size_t pos) 把pos处的bit置为1: " << bs << std::endl;  
  20.     std::cout << "bitset - test(size_t pos) 测试pos处的bit是否为1: " << std::boolalpha << bs.test(0) << std::noboolalpha << std::endl;  
  21.     std::cout << "bitset - to_ulong() 返回一个unsigned long值: " << bs.to_ulong() << std::endl;  
  22.     std::cout << "bitset - to_string() 返回一个std::string值: " << bs.to_string() << std::endl;  
  23.     return 0;  
  24. }  

输出:

C++ STL 中的 bitset 用法_第1张图片


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

会报出错







你可能感兴趣的:(C++ STL 中的 bitset 用法)