zoukankan      html  css  js  c++  java
  • bitset

    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/

  • 相关阅读:
    linux初识1
    linux初识
    练习题
    linux 创建虚拟机常见错误
    DevGridControl中GridView排序问题
    小工具:火车票查询
    小工具:邮件发送
    小工具:截图&简单图像处理
    Winform 控件的入门级使用(一)
    Winform & Devexpress Chart使用入门
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/12612207.html
Copyright © 2011-2022 走看看