<bitset>头文件简介
来源:互联网 发布:微信现场抽奖软件 编辑:程序博客网 时间:2024/05/19 19:41
< bitset >头文件
bitset是用来存放bit位元素的,由于每个元素(0或1)只占1bit位,因而可以节约空间(相比于8bit位的bool型变量)。在c++ stl中,提供了操作位的容器,使用前包含< bitset >头文件即可。
相关操作
1.创建bitset对象
如bitset<100> b,它能容纳100位比特位,每位上的初始值为0
注意:bitset的大小在定义时确定,定义后不能修改
2.设定元素值
- 下标法,b[i],下标i的取值从0到n-1
- b.set(),对b中所有元素设置为1(默认为0)
- b.reset(), 对b中所有元素设置为0
- b.set(pos,val) 等价于 b[pos]=val
- b.reset(pos) 等价于b[pos]=0
3.其他操作
同样,位运算符 & | ^ ~ << 也适用于bitset
常用以上操作来做集合运算,以减少时间常数
4.输出元素
- 逐个输出,采用下标法:cout<< b[i];
- 整体输出,即全部输出:cout<< b;
5.样例1
#include<bits/stdc++.h>using namespace std;int main(){ bitset<100> b; cout<<b; int n; cout<<endl<<"下面将十进制数转为二进制,请输入十进制数"<<endl; cin>>n; int index=0; while(n) { b[index++]=n%2; n/=2; } cout<<"二进制为"<<endl; for(int i=index-1;i>=0;i--){ cout<<b[i]; } return 0;}
6.样例2
#include<bits/stdc++.h>using namespace std;const int maxn=30;int main(){ bitset<maxn> b1,b2,b3; for(int i=0;i<maxn;++i){ b1[i]=i%2; } cout<<b1<<endl<<endl; for(int i=0;i<maxn;++i){ b2[i]=(i+1)%2; } cout<<b2<<endl<<endl; b3=b1&b2; cout<<b3<<endl<<endl; b3=b3.flip(); cout<<b3<<endl<<endl; b3=b1^b3; cout<<b3<<endl<<endl; return 0;}
截图
LeetCode 190 Reverse Bits
题目大意
reverse bits of a given 32 bits unsigned interger
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).
思路
bitset存
代码示例
#include<iostream>#include<bitset>#include<math.h>using namespace std;const int maxn=40;int main(){ bitset<maxn> b; int n; while(cin>>n) { int index=0; while(n) { b[index++]=n%2; n/=2; } unsigned int sum=0; int k=31; for(int i=0;i<index;++i){ sum+=b[i]*(int)pow(2,k); k--; } cout<<sum<<endl; } return 0;}
阅读全文
1 0
- <bitset>头文件简介
- C++ bitset头文件中的内容
- bitset简介
- bitset简介
- bitset简介
- Windows 头文件简介
- Algorithm头文件简介
- 1. 头文件简介
- Linux 常用头文件 简介
- zynq -中断头文件简介
- bitset用法简介
- bitset类简介
- C++类库bitset<>简介
- llinux系统头文件、C标准库头文件简介
- Linux C 头文件使用简介
- linux内核常用头文件作用简介
- C++预编译头文件简介
- C++预编译头文件简介
- 【Android破解】仨笨贼2
- 字符串排序组合 字符串”qiniu”根据顺序不同有多少种排列组合的方式?
- JavaSE_Java DOM 操作 xml
- 块元素和行内元素的区别
- 2017 Multi-University Training Contest 6 && HDOJ 6105 Gameia 【树形博弈】
- <bitset>头文件简介
- 2017年8月9日提高组T2 覆盖
- Mac地址获取工具类
- 你天生就是一个语言家
- BOM浏览器对象模型
- nyoj128 前缀式计算 栈
- 除等数论
- 如何使用reCaptcha(2.0版本)来做网站验证码
- 卷积神经网络(cnn)的体系结构