STL - bitset

CC2430寄存器深度解析:从原理到低功耗无线传感节点实战 在嵌入式系统与无线传感网络开发中,寄存器是连接软件与硬件的核心接口,它直接控制着微控制器内部各功能模块的行为与状态。理解寄存器的工作原理,是进行底层驱动开发、系统优化和故障排查的基础。通过精准配置电源管理、时钟控制、I/O、定时器、ADC及射频等核心寄存器,开发者能够实现对芯片资源的精细控制,这对于构建高性能、低功耗的物联网设备具有关键的技术价值。尤其在ZigBee和低功耗无线传感网络等应用场景中,对CC2430这类经典SoC的寄存器进行深度操作,是实现稳定通信、延长电池寿命的核心手段。本文将结合电源管理、 阅读详情

STL - bitset 小结

 

声明:

#include <bitset>
using std::bitset;

 

申请对象以及初始化:

bitset<n> b;

b有n位,每位都为0

bitset<n> b(u);

b是unsigned long型u的一个副本

bitset<n> b(s);

b是string对象s中含有的位串的副本

bitset<n> b(s, pos, n);

b是s中从位置pos开始的n个位的副本

 

 

 

 

 

 

 

 

 

对象的操作:

b.any()

b中是否存在置为1的二进制位? 返回 bool

b.none()

b中不存在置为1的二进制位吗? 返回 bool

b.count()

b中置为1的二进制位的个数   返回 size_t

b.size()

b中二进制位的个数

b[pos]

访问b中在pos处的二进制位

b.test(pos)

b中在pos处的二进制位是否为1?  返回bool

b.set()

把b中所有二进制位都置为1

b.set(pos)

把b中在pos处的二进制位置为1

b.reset()

把b中所有二进制位都置为0

b.reset(pos)

把b中在pos处的二进制位置为0

b.flip()

把b中所有二进制位逐位取反

b.flip(pos)

把b中在pos处的二进制位取反

b.to_ulong()

用b中同样的二进制位返回一个unsigned long值

os << b

把b中的位集输出到os流

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

每行的数字转换为二进制后代表一个汉字的16*16像素信息(1代表墨迹,0代表无墨迹)。

 1 #include <iostream>
 2 #include <bitset>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,m;
 7     while(cin>>n>>m)
 8     {
 9         bitset<8> t(n);//创建对象的时候可以直接传进去一个数
10         for(int i = t.size()-1; i >= 0; i--)
11             if(t[i] == 1) printf("*");
12             else printf(" ");
13         //cout<<t;  //也可以直接输出二进制
14         t = m;//也可以直接赋值
15         for(int i = t.size()-1; i >= 0; i--)
16             if(t[i] == 1) printf("*");
17             else printf(" ");
18         puts("");
19 //        cout<<t<<endl;    //也可以直接输出二进制
20     }
21 }
22 
23 /*
24 4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0
25 16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16
26 4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0
27 0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4
28 4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64
29 16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128
30 0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0
31 2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0
32 1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0
33 0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0
34 */

 

 

b.to_string() 转换为 string

 1 // bitset::to_string
 2 #include <iostream>       // std::cout
 3 #include <string>         // std::string
 4 #include <bitset>         // std::bitset
 5 
 6 int main ()
 7 {
 8   std::bitset<4> mybits;     // mybits: 0000
 9   mybits.set();              // mybits: 1111
10 
11   std::string mystring =
12     mybits.to_string<char,std::string::traits_type,std::string::allocator_type>();
13 
14   std::cout << "mystring: " << mystring << '\n';
15 
16   return 0;
17 }
View Code

 

b.to_ulong()转换为 unsigned long

b.to_ullong() 转换为 unsigned longlong

 1 // bitset::to_ulong
 2 #include <iostream>       // std::cout
 3 #include <bitset>         // std::bitset
 4 
 5 int main ()
 6 {
 7   std::bitset<4> foo;     // foo: 0000
 8   foo.set();              // foo: 1111
 9 
10   std::cout << foo << " as an integer is: " << foo.to_ulong() << '\n';
11 
12   return 0;
13 }
View Code

 

STL应用 —— bitset 阅读详情

相关推荐

STL标准库中的bitset原理解析

STL标准库中的bitset原理解析bitset简介  bitset,中文叫位图,类似于每一个元素都是0或者1的数组,但位图的空间利用率比数组高很多。在Linux系统中,位图广泛应用于进程id的分配和文件描述符(file describer)的分配。并且,位图可以用于排序。位图的基本原理是用一个bit位代表一个整数,如果位图中的第N为1,那么就表示整数N存在。  在c++的STL中实现了位图,包含在

u012069890的博客 4659

算法之旅,直奔<bitset>之一 to_string

to_string(vs2010) 引言 这是我学习总结的第一篇,to_string在Java中是那么的熟悉,但是在C++中好陌生。。。 作用 to_string的作用是把位组成的数据集合转换成字符串。 原型          实验 由bit组成的集合1111转换成字符串,然后输出           代码 test.cpp #inclu

cqs_2012 2927

C++ STL中使用bitset及其成员

C++ STL中使用bitset及其成员

qq_41317716的博客 710

C++STL之bitset

初始化方法代码含义a有n位,每位都为0a是unsigned long型u的一个副本a是string对象s中含有的位串的副本a是s中从位置pos开始的n个位的副本n必须为常量表达式// 1 无参构造//无参构造,长度为4,默认每一位为0// 2 有参构造:数字作为参数//长度为9,将该数转化为二进制保存,前面用0补充// 或此写法 bitset<9> bitset2({12});// 3 有参构造:string字符串作为参数//长度为10,前面用 0 补充。

weixin_46545179的博客 624

【C++】STL详解(十三)—— bitset(位图)的介绍与使用

今天我们比较详细地学习了bitset(位图)的介绍与使用,了解了一些有关的底层原理。接下来,我们将进行bitset(位图)的模拟实现。希望我的文章和讲解能对大家的学习提供一些帮助。

Sherry的博客 2476

STL特殊容器之bitset

一、概述 bitset构造出一个内含位(bit)或布尔(bool)值且大小固定的array。不能改变bitset内位的数量。这个参数由template参数决定的。如果需要一个可变长度的位容器,考虑使用vector&lt;bool&gt;。Class bitset定义于头文件&lt;bitset&gt;中,有一个template参数用来指定位的数量: namespace std { t...

We_are_family678的博客 660

C++STL系列之bitset

第一次提到bitset应该是在第一次算法博客上提到,它可以完美的代替bool a[N],bitset到底是什么,我们下面来讲解一下bitset称为位图,bit–比特位,set集合,位图,就是每一位存放一种状态,通常判断某个数据在不在,使用于数据量大,无重复,只关注在不在的数据的情况。当然库里是有bitset的bitset这里放的是位数,比如有bitset<1000 > bt,就是存放1000bit位,想表示10存在,就把10搞成1。布隆过滤器了解,bitset的使用要清楚。

weixin_62188419的博客 1114

DC/DC恒压输出控制原理与应用

DC/DC恒压输出控制

propor的专栏 4282

STL容器 —— bitset

位图算法,位图的模拟实现,位图的应用:常见面试题-> 海量数据的处理方法。

lyzzs222的博客 1351

七步设计高频变压器

七步设计高频变压器

m0_71394959的博客 5404

西门子【Automation Framework V1.2】AF架构:从软件栈到高效自动化项目的构建蓝图

本文深入解析西门子Automation Framework V1.2 (AF架构) 的核心价值与实施蓝图。该框架通过定义标准化的软件栈(如TIA Portal V19、STEP7、WinCC Unified)和严格的安装配置流程,将自动化项目开发从依赖个人经验的“手工作坊”模式,转变为高效、可复制的工业化模式。遵循此架构,工程师能快速构建稳定可靠的项目基础,规避环境冲突,从而专注于核心工艺与逻辑设计,大幅提升团队协作与项目交付效率。

weixin_29230059的博客 429

C++ STL bitset 位图

C++ bitset是一个高效处理固定大小位序列的STL容器类。它通过#include<bitset>引入,编译时确定位数,每位仅占1bit内存空间。支持整数、字符串等多种初始化方式,提供set()、reset()、flip()等位操作方法,以及各种位运算和类型转换功能。典型应用包括权限管理、质数筛选和状态标志系统。相比vector<bool>,bitset内存效率更高但大小固定。使用时需注意越界访问问题,[]运算符不检查边界而test()方法会抛出异常。bitset特别适合需要高性

似流水般平静而坚定。 888

深入解析SSD报错“READ FPDMA QUEUED”:从诊断到修复全流程

本文深入解析了SSD报错“READ FPDMA QUEUED”的含义、成因与全流程解决方案。该错误通常指示硬盘硬件或健康状态问题。文章详细介绍了如何通过系统日志定位错误、解读关键的S.M.A.R.T.健康报告(重点关注重分配扇区计数等指标),并逐步进行硬件排查(如更换SATA数据线)、软件修复与数据抢救,最终指导用户根据诊断结果做出维修或更换SSD的决策。

weixin_29233333的博客 400

C++STL中bitset的介绍与使用

是C++标准模板库(STL)中的一个模板类,用于表示和操作固定大小的二进制序列(即一组位)。以下是的详细介绍和使用方式。是一个模板类,其模板参数定义了位集合的大小。例如,bitset<32>表示一个包含32位的位集合。默认构造函数:创建一个长度为N的位集合,所有位都被设置为0。return 0;使用整数初始化:位集合的每一位将被对应的整数的二进制表示所设置。使用字符串初始化:字符串中的字符必须是’0’或’1’。

2301_80215285的博客 1565

飞腾D2000 BIOS编译避坑指南:PCIE拆分、S3电源与过温保护配置详解

本文详细解析飞腾D2000 BIOS编译中的关键配置技巧,包括PCIE拆分模式优化、S3电源管理适配及过温保护设置。通过实战案例和参数调优建议,帮助开发者规避常见陷阱,充分发挥国产高性能计算平台的硬件潜力。特别针对BIOS编译过程中的隐蔽问题提供解决方案。

weixin_33704234的博客 535

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 496

C++ STL bitset的用法

1.声明和初始化 std::bitset是STL的一个模板类,模板参数不是类型,而是整型数值,可以像数组一样使用位。 #include<bitset> std::bitset<8>bs; //声明了以bitset对象bs,bs可以装入8个bit,每一位都初始化为0 bs[0] = 1; //把第0位置1 bs[1] = 0; //把第1位置0 bs[2...

Lee_01的博客 645

RK3588开发笔记-麦克风阵列多pdm通道合并成一个声卡

在音频设备的开发中,特别是在多通道音频数据处理场景中,如何将多个PDM(Pulse Density Modulation)通道整合成一个声卡设备,是一个非常具有挑战性的问题。RK3588芯片作为一款性能强大的平台,提供了对多个音频通道的支持。本文将介绍如何在RK3588上将多个PDM通道合并成一个麦克风阵列声卡,从而在Linux系统下统一管理和使用,提高多通道音频的同步性。在本文中我们主要介绍使用2通道回采+4通道mic声音采集构成一个6通道声卡,加以回声消除实现一个多麦克风阵列。

flypig has a dream! 1927

STL容器之 bitset

STL = Standard Template Library,标准模板库,已成为标准C++语言的一部分,有必要好好学习一下。 STL包括容器和算法两部分。先系统的学习一下容器,然后在学习算法! 1、STL容器 容器是用来保存其它对象的对象。被保存的对象称为容器的元素。容器一般实现为模板类。 容器为元素分配存储空间,并提供元素访问方法。 stack,queue 和 priorit

wayz11的专栏 2842

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

STL bitset用法总结

c++ bitset类用法:http://blog.youkuaiyun.com/qll125596718/article/details/6901935 C++ 参考:http://www.cplusplus.com/reference/bitset/bitset/ http://happyboy200032.blog.163.com/blog/static/...

墨鱼菜鸡 636

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

BitMap算法和C++ STL里面的bitset

今天看到大数据处理的BitMap算法,可以有效地对空间进行压缩。 一、BitMap基本思想 在32位的机器上,一个int需要占据32位,而有时候这就是很大的空间浪费。比如没有重复数字的计数排序的时候,假设数据范围[0,1e8],则需要开辟数组int a[(int)1e8+1],a[i]表示i的出现的次数。这就需要大约400M的空间了。然而,由于数字不会重复,所以a[i]只会是0或1,那么32位...

阿飝的博客 9725

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STL之位图(bitset)

位图的使用与介绍,以及c++模拟实现,还有常见的海量数据题

异样旧日的博客 520

造轮子写bitset【STL的bitset很好了…… 自己造的轮子虽然更快,但是不实在】

结论: ACM比赛要bitset还是直接用STL 发现: 左移1e7次,STL的bitset要用0.7~0.8秒左右! 而一个long long / int 只要0.06秒左右 于是准备自己写一个bitset 然后……同样的操作,在inline后,0.48秒上下浮动。可以比STL快一倍,但是依然常数巨大。 只造了一小部分做实验,希望有菊苣

ACMer不要报考高校代码为13627的移通学院! 929

STL容器之bitset

bitset,通常用来存储的数据是二进制,所以后面涉及一些位运算或者是二进制的时候,使用bitset容器会比较方便。使用的时候,仍然需要包含bitset的头文件。

m0_74228185的博客 319

C++ STL bitSet

https://www.cnblogs.com/RabbitHu/p/bitset.html

W_E_DAY的博客 166
上一篇: STL - string
下一篇: HDU 6470 Count 【矩阵快速幂】(广东工业大学第十四届程序设计竞赛 )
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值