STL_Bitset

女爷i 2022-09-23 04:52 180阅读 0赞

1.构造

  1. <span style="font-family:Microsoft YaHei;font-size:24px;">std::bitset<16> foo;//构造16位的无参默认为0的位图
  2. std::bitset<16> bar(0xfa2);//转化为二进制形式
  3. std::bitset<16> baz(std::string("0101111001"));
  4. std::cout << "foo: " << foo << '\n';
  5. std::cout << "bar: " << bar << '\n';
  6. std::cout << "baz: " << baz << '\n';</span>

Center

bitset::operator[]:

  1. <span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::operator[]
  2. #include <iostream> // std::cout
  3. #include <bitset> // std::bitset
  4. int main()
  5. {
  6. std::bitset<4> foo;
  7. foo[1] = 1; // 0010
  8. foo[2] = foo[1]; // 0110
  9. //operator[] 设置位图的具体位置的数字
  10. std::cout << "foo: " << foo << '\n';
  11. system("pause");
  12. return 0;
  13. }</span>

bitset::count() :计算已经被设置的个数(1的个数)

  1. <span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::count
  2. #include <iostream> // std::cout
  3. #include <string> // std::string
  4. #include <bitset> // std::bitset
  5. int main()
  6. {
  7. std::bitset<8> foo(std::string("10110011"));
  8. std::cout << foo << " has ";
  9. std::cout << foo.count() << " ones and ";
  10. std::cout << (foo.size() - foo.count()) << " zeros.\n";
  11. system("pause");
  12. return 0;
  13. }</span>

bitset::size(): 求出bitset的大小

bitset::test(): 可以判断某一位是否为1,若为1,返回true,若为0,返回false

bitset::set():设置

  1. <span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::set
  2. #include <iostream> // std::cout
  3. #include <bitset> // std::bitset
  4. int main()
  5. {
  6. std::bitset<4> foo;
  7. std::cout << foo.set() << '\n'; //设置全为1
  8. std::cout << foo.set(2, 0) << '\n'; //下标为2的设置为0
  9. std::cout << foo.set(2) << '\n'; //设置下标2(从右开始数),默认为1
  10. system("pause");
  11. return 0;
  12. }</span>

Center 1

bitset::reset():设置为0

  1. <span style="font-family:Microsoft YaHei;font-size:24px;">std::bitset<4> foo(std::string("1011"));
  2. //reset():设置为0
  3. std::cout << foo.reset(1) << '\n';//原来是1,设置后变为0
  4. std::cout << foo.reset() << '\n'; //全部变为0</span>

bitset::flip():

  1. <span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::flip
  2. #include <iostream> // std::cout
  3. #include <string> // std::string
  4. #include <bitset> // std::bitset
  5. int main()
  6. {
  7. std::bitset<4> foo(std::string("0001"));
  8. std::cout << foo.flip(2) << '\n';// 0101 ,将下标为2的数字翻转为1
  9. std::cout << foo.flip() << '\n';// 1010,将foo全部翻转
  10. system("pause");
  11. return 0;
  12. }</span>

bitset::to_string():变为string输出

发表评论

表情:
评论列表 (有 0 条评论,180人围观)

还没有评论,来说两句吧...

相关阅读