it编程 > 编程语言 > C/C++

c++中bitset的常见用法示例详解

27人参与 2025-02-20 C/C++

c++ 中的 bitset 是一个用于处理固定大小位序列的模板类,提供高效的位操作功能。以下是对其关键特性的详细介绍:

1. 声明与初始化

bitset<8> b1;       // 默认初始化,所有位为0
bitset<4> b2(5);    // 用整数初始化:0101
bitset<4> b3("1010"); // 用字符串初始化:1010
bitset<4> b4(b3);   // 拷贝构造

2. 初始化规则

bitset<3> b(10);    // 10的二进制为1010 → 截断为010(值为2)
bitset<4> b("1010"); // 高位 → 低位:1 0 1 0 → 十进制10
bitset<4> b("101010", 2, 4); // 从索引2取4位:"1010" → 值为10

3. 常用操作

bitset<4> b("1010");
bool bit0 = b[0];   // 0 → 最低位
bool bit3 = b[3];   // 1 → 最高位
b.set(0);       // 1010 → 1011
b.reset(3);     // 1011 → 0011
b.flip(1);      // 0011 → 0001
if (b.any()) cout << "至少1位为1";

4. 位运算

bitset<4> a("1010"), b("1100");
auto c = a & b;     // 1000
auto d = a << 1;    // 0100

5. 类型转换

bitset<4> b(10);
string s = b.to_string(); // "1010"

6. 应用场景

示例代码

#include <bitset>
#include <iostream>
using namespace std;
int main() {
    bitset<8> b1(42);          // 00101010
    bitset<8> b2("10101010");  // 10101010
    cout << b1 << endl;         // 输出 00101010
    b1.set(0);                 // 变为 00101011
    b2.flip();                 // 变为 01010101
    cout << (b1 & b2) << endl; // 00000001
    cout << b1.to_ulong() << endl; // 43
    return 0;
}

注意事项

bitset 是处理二进制数据的利器,结合明确的位序规则和丰富的接口,可显著简化位级操作代码。

到此这篇关于c++中bitset的常见用法的文章就介绍到这了,更多相关c++ bitset用法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

使用C++实现跨进程安全的文件读写锁

02-19

C++17 中的 std::launder定义和用法详解

02-19

C++ Primer 多维数组的使用

02-21

C++中std::generate函数的具体使用

02-18

C++初始化数组的几种常见方法(简单易懂)

02-21

C++实现std::set的示例项目

02-18

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论