码迷,mamicode.com
首页 > 其他好文 > 详细

bitset

时间:2020-04-01 14:48:16      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:com   one   超出   int   头文件   val   没有   一个   16进制   

bitset类 有些类似bool数组

全部有1 和 0组成的一个字符数组

 

首先引入头文件

#include <bitset>

 

 

定义一个bitset类对象

bitset<4> bit_val;

意思是定义一个bitset对象,名字叫 bit_val ,长度为4,目前没有赋值 ,也就是 这个值是 0000

bitset<4> bit_val(7);

赋初值为7 ,我们知道 7 的二进制表示为 0111,所以 bit_cal 的值是 0111,也可以写16进制 比如 0x07

当然了也可以直接给0111

string str("111");
bitset<4> bit_val(str);

 

 

位运算

<< >> |  & ~ 都可以用在bitset类上

随便用几个试试:

int main()
{
    bitset<8> val_bit(string("10111011"));
    cout<<val_bit<<endl;
    cout<<(~val_bit)<<endl;
    cout<<(val_bit<<3)<<endl;
    cout<<(val_bit>>3)<<endl;
}

输出结果

10111011
01000100
11011000
00010111

 

 

复制过来bitset的成员函数

对于一个叫做bit的bitset:
bit.size()      返回大小(位数)
bit.count()     返回1的个数
bit.any()       返回是否有1
bit.none()      返回是否没有1
bit.set()       全都变成1
bit.set(p)      将第p + 1位变成1(bitset是从第0位开始的!) 
bit.set(p, x)   将第p + 1位变成x
bit.reset()     全都变成0
bit.reset(p)    将第p + 1位变成0
bit.flip()      全都取反
bit.flip(p)     将第p + 1位取反
bit.to_ulong()  返回它转换为unsigned long的结果,如果超出范围则报错
bit.to_ullong() 返回它转换为unsigned long long的结果,如果超出范围则报错
bit.to_string() 返回它转换为string的结果

也可以到这个网站上查看

http://www.cplusplus.com/reference/bitset/bitset/

 

bitset

标签:com   one   超出   int   头文件   val   没有   一个   16进制   

原文地址:https://www.cnblogs.com/qifeng1024/p/12612207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!