C++标准库中bitset类的用法

bitset是C++标准库中的一个类,用来处理位操作及运算。可以通过下标访问。bitset在内存中以倒序存储,如存入的数据为1000,用for(int i=0;i

#include <iostream>
#include <stdlib.h>
#include <string>
#include <bitset>
using namespace std;
int main()
{
    bitset<8>bint(1);//16位的二进制数据
    for (int i = 0; i < bint.size(); i++)
        cout << bint[i];
    cout << endl;
    cout << "输入初始状态:" << endl;
    cin >> bint;
    cout<<"大小:"<<bint.size()<<endl;
    cout <<"all:" <<bint.all()<<endl;//全为1返回1,否则返回0
    cout << "any:" << bint.any()<<endl;//全为0返回0,否则返回1
    cout << "count:"<<bint.count() << endl;//返回1的个数
    //cout << "flip:" << bint.flip() << endl;//全部取反
    for (int i = 0; i < bint.size(); i++)
        cout << bint[i];
    cout << endl;
    cout << "flip(n=1),将bint[1]取反:" << bint.flip(1) << endl;
    //返回它转换为unsigned long的结果,如果超出范围则报错
    cout << "to_ulong:" << bint.to_ulong() << endl;
    //返回它转换为unsigned long long的结果,如果超出范围则报错
    cout << "to_ullong:" << bint.to_ulong() << endl;
    //转换为string类型
    cout << "to_string:" << bint.to_string() << endl;

    cout << "set:" << bint.set() << endl;//全部置为1

    cout << "set(n):" << bint.set(2) << endl;//把bint[2]位置为1

    cout << "reset():" << bint.reset() << endl;//全部置为0

    cout << "none():"<<bint.none() << endl;//不存在1则返回1
    cout << "hash:" << bint.hash() << endl;
    /*for (int i=0;i<bint.size();i++)
    {
        cout << bint[i];
    }*/

    system("pause");
    return 0;
}

这里写图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
bitsetC++ 标准库的一个,用于处理二进制位。下面是 bitset 的主要用法: 1. 创建 bitset 对象 可以通过以下方式创建 bitset 对象: ```cpp #include <bitset> // 创建一个大小为 10 的 bitset 对象,所有二进制位初始化为 0 std::bitset<10> bits1; // 从整值创建 bitset 对象 std::bitset<10> bits2(0b1010); // 从字符串创建 bitset 对象 std::bitset<10> bits3("1010"); ``` 2. 访问二进制位 可以使用 `[]` 运算符或 `test()` 方法访问 bitset 对象二进制位,使用 `set()` 或 `reset()` 方法可以设置或复位二进制位。 ```cpp std::bitset<10> bits("1010"); // 访问第 0 位二进制位 bool b1 = bits[0]; bool b2 = bits.test(0); // 设置第 1 位二进制位 bits.set(1); // 复位第 2 位二进制位 bits.reset(2); ``` 3. bitset 的位运算 bitset 支持多种位运算操作,如按位与、按位或、按位异或、按位取反等。 ```cpp std::bitset<10> bits1("1010"); std::bitset<10> bits2("0110"); // 按位与 std::bitset<10> result1 = bits1 & bits2; // 按位或 std::bitset<10> result2 = bits1 | bits2; // 按位异或 std::bitset<10> result3 = bits1 ^ bits2; // 按位取反 std::bitset<10> result4 = ~bits1; ``` 4. bitset 的转换 bitset 可以转换为其他数据类型,如整、字符串等。 ```cpp std::bitset<10> bits("1010"); // 转换为整 int num = bits.to_ulong(); // 转换为字符串 std::string str = bits.to_string(); ``` 以上就是 bitset 的主要用法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值