注意:这个只能识别整数部分,小数部分不能用。
一个二进制串,比如0110101,第 0 位是最右边的一位,是1,第 6 位是最左边一位,是0.
定义及初始化:
bitset<8> b1;  //默认构造函数,一定要设置位数,此次设为8位. [0 0 0 0 0 0 0 0]
bitset<8> b2(42);  //赋值 b2 为7. [0 0 1 0 1 0 1 0]
string bit_string = "110010";

bitset<8> b3(bit_string); //[0 0 1 1 0 0 1 0]

函数:
bitset<N>& set();  设置所有位为1

bitset<N>& set(size_t pos,bool value=true);  设置某个位置的值为1

bitset<N>& reset();  设置所有位为0

bitset<N>& reset(size_t pos,bool value=true);  设置某个位置的值为0

bitset<N>& flip();  翻转所有位,1变0,0变1

bitset<N>& flip(size_t pos);  翻转某一位

bool test( size_t pos ) cosnt;  如果pos位置值为1,返回true,否则false

examp:求一个二进制的最低位(最右边)的 1 在哪个位置

#include <iostream>
#include <bitset>int main()
{std::bitset<10> b1("1111010000");size_t idx = 0;while (idx < b1.size() && !b1.test(idx)) {++idx;}if (idx < b1.size()) {std::cout << "lowest set bit at index " << idx << '\n';} else {std::cout << "no set bits\n";}
}

View Code

bool all() const;  如果所有位的值都为1,返回true,否则false

bool any() const;  如果有一位值为1,返回true,否则false

bool none() const;  如果所有位值都不为1,返回true,否则false

size_t count() const;  返回二进制中1的个数

size_t size() const;  返回二进制的位数

to_string(CharT zero = CharT('0'), CharT one = CharT('1')) const;

用法示例:

#include <iostream>
#include <bitset>
int main()
{std::bitset<8> b(42);std::cout << b.to_string() << '\n'<< b.to_string('*') << '\n'<< b.to_string('O', 'X') << '\n';
}/*
Output:
00101010
**1*1*1*
OOXOXOXO
*/

View Code

转载于:https://www.cnblogs.com/54zyq/p/3335671.html

C++ bitset的用法相关推荐

  1. C++ bitset的用法实例

    C++ bitset的用法实例 一.bitset 二.代码 三.总结 一.bitset 顾名思义,bitset是位bit的set集合,是可以当做容器使用的一种数据结构. bitset提供了一些很实用的 ...

  2. bitset c++ 用法

    #include<bitset> 在项目中需要使用到10进制48位的数字按二进制由高到低解释,然后按每一位是0还是1来判断报警或错误状态. 所以,在Linux中的C++下需要用到二进制转换 ...

  3. bitset简单用法

    bitset的创建: #include<bitset>bitset<32> ar; //默认全为0 bitset<32> ar(n); //n的二进制 bitset ...

  4. c语言flip用法,C++ bitset::flip()用法及代码示例

    bitset::flip()是C++中的内置 STL,用于翻转位.如果未在函数中传递任何参数,则它将翻转所有位值,将零转换为一,并将一转换为零.如果传递了参数位置,则仅翻转该位置的位. 用法: bit ...

  5. STL中bitset的用法的整理

    构造函数 bitset<n> b;  b有n位,每位都为0.参数n可以为一个表达式. 如bitset<5> b0;则"b0"为"00000&quo ...

  6. c++ bitset类用法

    有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值.位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法.标准库提供了bitset类使得处理位集合更容易一些.要使 ...

  7. c++ bitset 基本用法

    bitset存储二进制数位. bitset就像一个bool类型的数组一样,但是有空间优化--bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一. bitset中的每个 ...

  8. c++中bitset的用法总结

    一.bitset是什么 bitset是c++中的一个类库,来管理一系列bit位,及二进制串.类似于数组,但每个元素只能是0或1且仅用1bit的空间 包含于头文件#include < bitset ...

  9. STL bitset用法总结

    c++ bitset类用法:http://blog.csdn.net/qll125596718/article/details/6901935 C++ 参考:http://www.cplusplus. ...

最新文章

  1. SQL系列ROLLUP关键字
  2. 课堂上我们为什么不发言
  3. progressdialog的setProgress没反应
  4. 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...
  5. 智能大棚计算机系统,一套智能大棚需要哪些设备?我来告诉你!
  6. Nancy 寄宿OWin
  7. 操作系统:升级Windows 11正式版的四种方法,值得收藏!
  8. 降低成本是永恒的追求(xamarin)
  9. 公务员考试中公共基础知识计算机,2012山东省公务员考试公共基础知识最新考试试题库(完整版)...
  10. axivion和astree_基于LabVIEW的IVI编程 IVI Programme Based on LabVIEW.pdf
  11. 不得不爱开源 Wijmo jQuery 插件集(10)-【Expander】(附页面展示和源码)
  12. 利用DELL的OMSA监控服务器的温度
  13. 【Cocos2dx】资源目录,播放背景音乐,导入外部库
  14. tcp欢动窗口机制_Linux网络编程面试--滑动窗口的实现机制
  15. 设计模式学习笔记(九:中介者模式)
  16. 人脸识别关键技术及原理
  17. 潇洒郎:彻底解决Markdown图片问题——无需上传图片——无需网络——转发给他人图片无缺失
  18. Linux-Mysql 源码包安装初始化报错
  19. 联想拯救者Y7000P键盘失灵
  20. 【算法】布赖恩·克尼根算法——天才算法求二进制中1的个数

热门文章

  1. vue项目中的遇错:Invalid Host header
  2. mysql创建账号并赋予权限
  3. 【ntp】虚拟机时间莫名异常
  4. java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析
  5. Wondows环境下配置Tomat
  6. 漫画 | 如何凭实力炒老板鱿鱼,并喜提N+1~
  7. 入门数据分析选择Python还是SQL?七个常用操作对比!
  8. PDF下载!《Python十大基础专题》《247个Python综合案例》《Pandas 20页学习笔记》...
  9. 40条提升编程技能的小妙招
  10. [别被脱库]—数据库的初恋~