C++bitset处理二进制位的神器

2023-11-09

初始化

	string str1 = "abc tftf";

	//初始化
	bitset<20> b1;
	bitset<20> b2(0xaa);
	bitset<20> b3(str1, 4, 4, 'f', 't'); //(字符串, 起始位置, 数量, 代表0的字符, 代表1的字符)
	cout << b1 << endl;	//00000000000000000000
	cout << b2 << endl;	//00000000000010101010
	cout << b3 << endl;	//00000000000000001010

特别说明:第三个初始化,若给定的字符串范围中含有zero,one之外的字符,系统报异常。

	try
	{
		bitset<20> b4(str1, 3, 4, 'f', 't');
	}
	catch (exception& e)
	{
		cout << e.what() << endl; //invalid bitset<N> char
	}

其他功能

输入输出

	bitset<20> b;
	cin >> b; //10101,测试输入值
	cout << b << endl; //00000000000000010101

关于二进制位的置位情况

	bool a1 = b.any(); //true,有任意一个二进制位置位
	bool a2 = b.all(); //false,所有二进制位置位
	bool a3 = b.none(); //false,没有二进制位置位
	size_t s4 = b.count(); //3,置位的二进制位个数

长度

	size_t s5 = b.size(); //20,二进制位的长度

随机访问

	bool s6 = b.test(1); //false,索引为1的二进制位的值
	bool s7 = b[1];	//false,索引为1的二进制位的值
	bool s8 = b[0];	//true,索引为0的二进制位的值

置位操作

	bitset<20> s9 = b.set(1); //00000000000000010111,置位索引为1的二进制位
	bitset<20> s10 = b.set(); //11111111111111111111,置位所有二进制位

复位操作

	bitset<20> s11 = b.reset(1); //11111111111111111101,复位索引为1的二进制位
	bitset<20> s12 = b.reset(); //00000000000000000000,复位所有二进制位

取反操作

	bitset<20> s13 = b.flip(1); //00000000000000000010,取反索引为1的二进制位
	bitset<20> s14 = b.flip(); //11111111111111111101,取反所有二进制位

转换为整形

	unsigned long s15 = b.to_ulong(); //1048573,若s15容不下最终转换的值,系统报异常overflow_error
	unsigned long long s16 = b.to_ullong(); //1048573

转换为字符串

	string s17 = b.to_string('0', '1'); //"11111111111111111101",(代表0的字符,代表1的字符)

具体内容请看C++Primer第17章 17.2 部分
下载C++Primer第五版

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++bitset处理二进制位的神器 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • Pineapple Incident【Codeforces 697 A】

    Codeforces Round 362 Div 2 A 简单题 include
  • TPO39

    Some people hold the viewpoint that it was easier to distinguish a secure and successful job in the past instead of in t
  • 数据结构链表题集

    题目一 113 删除排序链表中的重复数字 二 LintCode 思路 创建哨兵位头结点 原地删除 class Solution public param head head is the head of the linked list re
  • C#练习——窗体实现简单计算器,完成加,减,乘,除,取余,简单运算

    c windows窗体练习 实现简单计算器 完成加 减 乘 除 取余 简单运算 编写环境 vs2017 using System using System Collections Generic using System Component
  • 普通人自学Python后的用处

    普通人自学Python后的用处 python是一个非常优秀的编程语言 逐渐受到越来越多人的青睐 而且学会了python能做很多事情 在上班的同时还能利用python做一些兼职 例如 兼职处理数据 兼职查询资料 兼职P图等 那么普通人自学Py
  • 单片机调试出现一些不常见问题及原因

    1 4位共阳数码管的有一个位的其中一段不亮 而其他位的该段能正常显示 这有些不符合常理 因为共阳数码管的4个为的段是连在一起的 如果是程序问题或者硬件连接有问题 应该4位全不亮 原因 经排查 原因是发现电路板的背面该段和其他位的位选线短路了
  • 生成项目目录结构(based on windows system)

    描述 作为程序员 在工作中 我们经常会有需求 需要罗列出项目的结构图 如果手工来整理的话 太过浪费时间 其实我们可以借助tree命令来快速生成目录结构 本文主要介绍一下 基于windows系统 如何快速生成目录结构的方法 步骤 1 开始 g
  • vue项目中点击非刷新按钮,页面刷新并且路由多了个问号解决方案

    问题描述 在vue项目开发过程中 点击查询或重置按钮 结果页面刷新了一遍 发现路径变成了 localhost 8080 advanced 原因 这是因为在 form 表单里 点击了button 按钮 触发了表单的默认事件 也就是触发了提交行
  • 自动化部署MySQL 5.6 步骤 制作到ftp共享,永远使用

    首先需要搭建ftpserver yum install vsftpd service vsftpd start 这样ftp服务就起来了 这里只是简单的使用 所以没有使用配置文件 这样我们只要将需要的文件置于 var ftp pub 文件夹下
  • http包通信方式,通信过程,包解析过程

    HTTP Hypertext Transfer Protocol 是一种客户端 服务器协议 用于在Web上传输数据 HTTP协议定义了客户端和服务器之间的通信方式 通信过程以及数据包解析过程 本文将详细讲解HTTP包通信方式 通信过程和包解
  • Dubbo调用过程监控

    MonitorFilter 主要对调用过程进行监控 public Result invoke Invoker
  • 【代码规范】函数命名总结

    Service DAO 层方法命名规约 Get 完整的拿出某一固定存在的结构 不修改 Build 需要根据一些因素构建一个结构 List 获取批量 Fetch 不用传参数获取 Handle handleFilePathFail这种 用于处理
  • java的windows脱机,Win32 API LogonUser对本地帐户的脱机访问

    是否有一系列标志允许 LogonUser 在计算机未连接到网络时返回可用于冒充本地用户的令牌 但所有帐户已在本地存在 我有域帐户执行应用程序 MYDOMAIN FooUser 而我正试图获得一个假冒令牌 MYLAPTOP TestUser
  • Kubernetes快速入门

    前言 本文旨在为Kubernetes入门使用者 提供使用Kubernetes需要掌握的基本知识 1 基础概念 1 1 集群与节点 kubernetes是一个开源的容器引擎管理平台 实现容器化应用的自动化部署 任务调度 弹性伸缩 负载均衡等功
  • 罗剑锋透视HTTP协议学习笔记---26

    26 信任始于握手 TLS1 2连接过程解析 TLS的几种子协议及结构 一个TLS报文由若干记录层 Record Layer 组成 记录层相当于是一个消息容器 承载其它协议 它包括一个TVL 描述其承载的其它协议 如上图 这是一个Serve
  • git 拉取上游仓库tag并同步

    git remote add upstream https github com xxxx xxxx git git fetch upstream tag vX X git tag git push origin refs tags vX
  • 拦截验证每个请求的权限

    前面做的虽然在界面内看不见没有权限的链接 但可以直接在地址栏输入链接进行访问 所以我们这里要使用拦截器拦截每个访问action的请求 1 struts配置
  • C++ 实现守护进程

    文章目录 1 守护进程概念 1 什么是守护进程 2 守护进程的特点 3 如何查看linux系统中已存在的守护进程 2 守护进程编写的步骤 3 示例 1 守护进程概念 1 什么是守护进程 Linux Deamon守护进程是运行在后台的一种特殊
  • 爬虫高级应用(14. 可见即可爬Selenium)

    本章主要内容 1 安装Selenium和WebDriver 2 Selenium的基本使用方法 3 查找节点 4 节点交互 5 管理Cookie 6 执行JavaScript代码 7 改变节点属性值 Selenium的主要功能 1 打开浏览
  • C++bitset处理二进制位的神器

    初始化 string str1 abc tftf 初始化 bitset lt 20 gt b1 bitset lt 20 gt b2 0xaa bitset lt 20 gt b3 str1 4 4 f t 字符串 起始位置 数量 代表0的