C++ bitset

发布时间 2023-07-24 15:56:14作者: Keith-

C++ bitset是C++ STL库中的一个类,用于存储二进制位的数组,并提供了一些位操作的函数。下面是一些C++ bitset的语法:

  1. 创建一个bitset:可以使用以下语法创建一个bitset:

    std::bitset<size> bits; // 创建一个大小为size的bitset,所有位都被设置为0
    std::bitset<size> bits(val); // 创建一个大小为size的bitset,使用val的二进制表示进行初始化
    std::bitset<size> bits(str); // 创建一个大小为size的bitset,使用字符串str的二进制表示进行初始化
    ```
    
    其中,`size`是bitset的大小,`val`是一个整数,`str`是一个表示二进制位的字符串。
    
    
  2. 访问和修改位:可以使用以下语法访问和修改位:

    bool bit = bits[pos]; // 获取位pos的值
    bits.set(pos, value); // 将位pos设置为value
    bits.flip(pos); // 将位pos的值反转
    bits.reset(); // 将所有位设置为0
    bits.set(); // 将所有位设置为1
    ```
    
    其中,`pos`是位的位置,`value`是位的值,可以是0或1。
    
    
  3. 位运算:可以使用以下语法对位进行位运算:

    bits1 & bits2; // 位与运算
    bits1 | bits2; // 位或运算
    bits1 ^ bits2; // 位异或运算
    ~bits1; // 位取反运算
    bits1 << n; // 左移n位
    bits1 >> n; // 右移n位
    ```
    
    
  4. 其他操作:还可以使用以下语法执行其他操作:

    bits.count(); // 统计位值为1的位数
    bits.any(); // 判断是否存在位值为1的位
    bits.none(); // 判断是否所有位都为0
    bits.to_ulong(); // 将bitset转换为unsigned long类型的值
    bits.to_ullong(); // 将bitset转换为unsigned long long类型的值
    ```
    
    

这些是C++ bitset的一些常用语法,可以使用它们来操作和处理二进制数据。