首页 > 编程语言 >c++ bitset用法

c++ bitset用法

时间:2022-10-08 17:24:05浏览次数:47  
标签:name 二进制 c++ 用法 bitset b2 长度 数组

一、 声明:

  1. bitset<N> f; // N是二进制长度,这时每一位都是0
  2. 存储数字的二进制:
    bitset name(num); // 定义长度为 N 的二进制数组,命名为 name,将数字 num 的二进制存到其中;
    bitset<8> f(12) // 二进制长度为8, 将12转换为二进制存入其中
  3. 存储 01字符串 对应的二进制:
    bitset name(string); // 定义长度为 N 的二进制数组,命名为 name,将01串 string 存到其中,长度不够前补 0,长度过长截断;
string s = "10010";
bitset<8> f(s);
  1. 存储 01字符数组 中的二进制:
    bitset name(char[]); // 定义长度为 N 的二进制数组,命名为 name,将 01字符数组存到其中,长度不够前补0,长度过长截断;
char chs[10] = "10010";
bitset<8> b4(chs);

注意:

直接输出 bitset 为正常的二进制,但是遍历所有位置来输出的话就是逆序的

bitset<8> bs(13);
cout << bs <<endl; //00001101
for(int i=0;i<7;i++) cout<<bs[i]; //10110000

二、 操作

  1. 正常二进制数的位运算
b2 |= b3; //两个二进制数取或操作; 
b2 &= b3; //两个二进制数取与操作; 
b2 ^= b3; //取异或;
b2 = ~b2; //取反; 
b2 <<= 2; //左移右移;

  1. 自带的api
int cnt_1 = b2.count(); //查询二进制数组中,1的个数;
int len  = b2.size(); //二进制数组的长度,就是定义的长度; 
int test = b2.test(7); //判断第x个位置是0还是1,也就是输出第x个位置,注意逆序;

b2.flip(); //将二进制每一位取反;
b2.flip(3); //将二进制第x位取反;
b2.set(); //将二进制每一位置为1; reset置为0; 
b2.set(3); //将第x个位置置为1;
	
string ss = b2.to_string(); //将二进制数组转化为字符串。 

标签:name,二进制,c++,用法,bitset,b2,长度,数组
From: https://www.cnblogs.com/chelly-algorithm/p/16769583.html

相关文章

  • C/C++简单音乐播放器系统
    C/C++简单音乐播放器系统程序设计题1:简单音乐播放器系统出题人:吴敏面向专业:计算机科学与技术难度等级:41问题描述编写一个简单音乐播放器软件,实现歌单文件的浏览,点......
  • C++需要注意的知识
    类1、2、3、4原文链接:https://blog.csdn.net/fjhugjkdsd/article/details/1052816511.什么是类的6个默认成员函数?如果一个类中什么成员都没有,简称为空类。任何一个类在......
  • 前端js操作符: ?/?? /!!用法
    前言最近大概浏览别人源码的过程中发现有些操作符我竟然从来没用过。经过查询做个笔记。操作符?这个应该很好理解,就是简单的三元操作符​​ 例子:a?b:c //表示a===tr......
  • C++判断文件是否存在的方法汇总
    C++判断文件是否存在的方法汇总1.使用boost判断文件是否存在std::stringfile_path="file_name";if(!boost::filesystem::exists(file_path)){std::cout<<......
  • 为python编译C++模块时一定要注意的事情—————不要在anaconda环境下使用cmake来编
    平时搞python的人很多都会有安装C++扩展模块的需求,而往往这些C++模块都是使用CMAKE做编译配置的,但是如果你这时候shell环境是使用anaconda的话,那么cmake默认调用的GCC和G++......
  • C++11特性(上)
    写在前面今天我们谈谈C++的一些语法,这些语法是C++11标准下新增的.有的人感觉学C++很难,那么C++11标准出来之后你会发现学习的成本又增加了.C++11增添了很多特性,有有用的,......
  • C++ 右值引用与 const 关键字
    C++11新增了另一种引用:右值引用(rvaluereference),这种引用可指向右值,是使用&&声明的。使用右值引用可以减少复制操作,延长临时对象生命周期,提升程序性能。它一般被用来实......
  • window.onerror事件用法
    https://blog.csdn.net/legoe/article/details/7007152https://www.cnblogs.com/otakuhan/p/7802881.html在页面没有错误时,window.onerror事件是不存在的;如果错误被try......
  • C++ write file hugely
    //ConsoleApplication1.cpp:Thisfilecontainsthe'main'function.Programexecutionbeginsandendsthere.//#pragmaonce#pragmacomment(lib,"rpcrt4.lib"......
  • AutoScaleBaseSize用法粗了解
    设置窗体的大小AutoScaleBaseSize属性的值在窗体显示时使用,用来计算该窗体的缩放因子。窗体将自动缩放基大小(用作与系统的字体大小进行比较的基准),以确定使用自动缩放时窗......