打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++基础知识:C++ bitset
userphoto

2014.06.11

关注
#include <iostream>
 
//使用bitset需要include <bitset>
#include <bitset>
 
using namespace std;
 
int main(){
    //bitset 使用整数初始化bitset
    bitset<3> bs(7);
    //输出bs各个位的值
    cout<<"bs[0] is "<<bs[0]<<endl;
    cout<<"bs[1] is "<<bs[1]<<endl;
    cout<<"bs[2] is "<<bs[2]<<endl;
    //下面的语句会抛出outofindexexception
    //cout<<"bs[3] is "<<bs[3]<<endl;
 
    //使用字符串初始化bitset
    //注意:使用string初始化时从右向左处理,如下初始化的各个位的值将是110,而非011
    string strVal("011");
    bitset<3> bs1(strVal);
    //输出各位 
    cout<<"bs1[0] is "<<bs1[0]<<endl;
    cout<<"bs1[1] is "<<bs1[1]<<endl;
    cout<<"bs1[2] is "<<bs1[2]<<endl;
    //cout输出时也是从右边向左边输出
    cout<<bs1<<endl;
 
    //bitset的方法
    //any()方法如果有一位为1,则返回1
    cout<<"bs1.any() = "<<bs1.any()<<endl;
 
    //none()方法,如果有一个为1none则返回0,如果全为0则返回1
    bitset<3> bsNone;
    cout<<"bsNone.none() = " <<bsNone.none()<<endl;
 
    //count()返回几个位为1
    cout<<"bs1.count() = "<<bs1.count()<<endl;
 
    //size()返回位数
    cout<<"bs1.size() = "<<bs1.size()<<endl;
 
    //test()返回某一位是否为1
    //flip()诸位取反
    bitset<3> bsFlip = bs1.flip();
    cout<<"bsFlip = "<<bsFlip<<endl;
    //flip(int)将某一位取反
     
    //reset()方法将各个位的值都重置为0
 
    //to_ulong
    unsigned long val = bs1.to_ulong();
 
    int j;
    cin>>j;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
bitset 用法总结 三个基本用法 (转)_aifang9999
二进制位的操作
C 实现布隆过滤器 - 从上亿条数据中查找某个记录是否存在
华为机试HJ39:判断两个IP是否属于同一子网
C 使用union struct实现bit协议的处理封装
178 f0602
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服