【24.2.3笔记】C++ Primer 自学Day 20

四、表达式

12、bitset 操作

操作功能用法
test(pos)pos位是否为1?a.test(4)
any()任意位是否为1?a.any()
none()是否没有位为1?a.none()
count()值是1的位的个数a.count()
size()位元素的个数a.size()
[pos]访问pos位a[4]
flip()翻转所有的位a.flip()
flip(pos)翻转pos位a.flip(4)
set()将所有位置设置为1a.set()
set(pos)将pos位置设置为1a.set(4)
reset()将所有的位置设置为0a.reset()
reset(pos)将pos位置设置为0a.reset(4)

        要使用bitset类,必须先声明头文件:

#include <bitset>

        有三种简单方法来构造bitset对象:

bitset<32> bitvec; // 默认构造
bitset<32> bitvec2(0xffff);//低16位设置为1,这边使用了十六进制数表示
bitset<32> bitvec3(012);// 这边用八进制数表示,012在二进制数里为1010,于是在这边把第一位和第三位设置为1

        上面的声明,声明了32位的bieset对象,和数组一样,它的下标也要从0开始。

        我们还可以通过传递字符串的方式来初始化一个bitset的对象:

string bitval("1010");
bitset<32>bitvec4(bitval);

        如果使用的字符串长度比较长,我们还可以截取其中的一段来初始化bitset类型的对象:

string bitval( "1111110101100011010101" ); 
bitset< 32 > bitvec6( bitval, 6 ,4); // 从位置6开始,长度为4
bitset< 32 > bitvec6( bitval, 6 ,4); // 从位置6开始,直到结束

        我们可以把bitset类型转换成其他类型的对象:

string bitval( bitvec3.to_string() );  //转换成字符串
unsigned long bitval = bitvec3.to_ulong();//转换成无符号长型

        bitset类也支持位操作符。

13、优先级

        可以参考以下网址:https://learn.microsoft.com/zh-cn/cpp/cpp/cpp-built-in-operators-precedence-and-associativity?view=msvc-170
        
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 Python 的 Web 应用程序的 Web 服务器比较

简介 在本文中&#xff0c;我们将讨论三个主要内容&#xff1a;Python、Web 服务器&#xff0c;以及两者之间最重要的细节。 开玩笑的话&#xff0c;这篇相当长的文章对于一些寻求快速指导或答案的人来说可能看起来有些严肃。不幸的是&#xff0c;与 Python 世界中的大多数事物…

153基于matlab的滚动轴承故障诊断

基于matlab的滚动轴承故障诊断&#xff0c;基于小波包分解&#xff0c;得到数据峭度值&#xff0c;以正常与故障数据峭度差值进行最大尺度重构&#xff0c;对重构信号进行包络谱分析。程序已调通&#xff0c;可直接运行。 153matlab 信号重构 包络谱分析 故障诊断 (xiaohongshu…

工业物联网接入网关在制造企业的实际应用-天拓四方

随着工业4.0和智能制造的兴起&#xff0c;工业物联网&#xff08;IIoT&#xff09;已成为工厂自动化的关键驱动力。在这个转变中&#xff0c;工业物联网网关扮演着至关重要的角色。它们充当了设备与企业系统之间的桥梁&#xff0c;实现了数据采集、分析和设备控制等功能。 案例…

ServletConfig类和ServletContext类

1.ServletConfig类 1什么是ServletConfig&#xff1f; ServletConfig 类从类名上来看&#xff0c;就知道是 Servlet 程序的配置信息类 。 Servlet 程序默认是第一次访问的时候创建&#xff0c; ServletConfig 是每个 Servlet 程序创建时&#xff0c;就创建一个对应的 S…

编程笔记 html5cssjs 076 Javascript 表达式

编程笔记 html5&css&js 076 Javascript 表达式 一、JavaScript表达式二、示例总结 在JavaScript中&#xff0c;表达式是一种可以计算出值的结构。它可以是一个简单的字面量&#xff08;如数字或字符串&#xff09;&#xff0c;一个变量名&#xff0c;或者更复杂的结构&…

Python3 交叉编译 numpy pandas scipy scikit-learn

1. 概述 由于需要将Python3.7 和一些软件包交叉编译到 armv7 平台硬件&#xff0c;如果是arm64位的系统&#xff0c;很多包都有预编译好的版本&#xff0c;可直接下载。本文主要在基于 crossenv(https://github.com/benfogle/crossenv)环境下交叉编译。 2. 编译环境搭建 创建…

Node.js-1

Node.js 简介 定义&#xff1a;Node.js 是一个跨平台 JavaScript 运行环境&#xff0c;使开发者可以搭建服务器端的 JavaScript 应用程序 为什么 Node.js 能执行 JS 代码&#xff1a; Chrome 浏览器能执行 JS 代码&#xff0c;依靠的是内核中的 V8引擎&#xff08;即&#x…

2024PMP考试新考纲-近年真题练一练和很详细解析(1)

前面的几十篇文章中&#xff0c;华研荟主要从PMP相关的教材&#xff08;PMBOK第六版、PMBOK第七版和敏捷实践指南》出发&#xff0c;分类介绍了相关的考试真题&#xff0c;并逐一作了比较详细的解析&#xff0c;部分典型题目还做了提醒和拓展&#xff0c;帮助大家做题的时候知其…

Leetcode的AC指南 —— 栈与队列 :1047.删除字符串中的所有相邻重复项

摘要&#xff1a; **Leetcode的AC指南 —— 栈与队列 &#xff1a;1047.删除字符串中的所有相邻重复项 **。题目介绍&#xff1a;给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&a…

面试常问的-React 18的新特性

2022年3月发布的React 18带来了一系列新特性和更新,极大地增强了React应用程序的功能和性能。这个版本为并发渲染奠定了基础,这是React未来更新的基石。下面我们来深入了解React 18的关键特性和变化,包括技术细节和代码示例。 升级到React 18 要开始使用React 18,请使用npm或…

MATLAB计算多边形质心/矩心

前言&#xff1a;不规则四边形的中心 不规则四边形的出心有多种定义&#xff0c;以下是最常见的三种&#xff1a; 1.重心&#xff1a;重心是四边形内部所有顶点连线交点的平均位置。可以通过求解四个顶点坐标的平均值来找到重心。 2.质心&#xff1a;质心是四边形内部所有质点…

242. Valid Anagram(有效的字母异位词)

问题描述 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 问题分析 此问题与383. Ransom Note(赎金信)类似&#xff0c;只是字符变为了…

Python入门指北二十三

Python中有哪些常用的ORM框架&#xff1f;它们的特点是什么&#xff1f; Python中有多个常用的ORM框架&#xff0c;每个框架都有其独特的特点和适用场景。以下是其中几个常用的ORM框架&#xff1a; SQLAlchemy&#xff1a;SQLAlchemy是Python中一个非常流行的ORM框架&#xf…

Qt多语言翻译

Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制&#xff0c;其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中&#xff0c;然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译…

Qt中的线程与信号槽

小实践 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H // #pragma once #include <QMainWindow> #include"zthread.h"QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass ZThread;class MainWindow : public QMainWin…

docker入门教程之将应用程序容器化

将应用程序容器化 在本指南的其余部分中&#xff0c;您将使用在 Node.js 上运行的简单待办事项列表管理器。如果您不熟悉 Node.js&#xff0c;请不要担心。本指南不需要任何 JavaScript 经验。 先决条件 您已安装最新版本的 Docker Desktop。您已经安装了 Git 客户端。您可以…

突破编程_C++_基础教程(指针(一))

1 指针的基础概念 指针是 C 的核心之一&#xff0c;使用 C 语言构建的程序之所以性能强悍&#xff0c;有很大部分原因是体现在使用指针直接操作内存。当然这样的工具是一把双刃剑&#xff0c;错误的指针操作可能会导致程序崩溃或者数据损坏。 指针主要有四个方面的用途&#x…

java05 数组

一 概念介绍 指的是一种容器&#xff0c;可以同来存储同种数据类型的多个值。 但是数组容器在存储数据的时候&#xff0c;需要结合隐式转换考虑。 比如&#xff1a; 定义了一个int类型的数组。那么boolean。double类型的数据是不能存到这个数组中的&#xff0c; 但是byte类…

Java线程同步的方法和例子

在Java中&#xff0c;线程同步是一种机制&#xff0c;用于确保多个线程可以安全地访问共享资源&#xff0c;而不会发生数据不一致或数据损坏的情况。线程同步的主要方法包括&#xff1a; synchronized关键字&#xff1a;这是Java中最常用的线程同步方法。它用于方法或代码块&a…

Orange3数据预处理(分组组件)

Group By是Orange3中一个非常有用的组件&#xff0c;它允许用户对数据集进行聚合操作&#xff0c;类似于SQL中的GROUP BY语句或Pandas库中的groupby方法。以下是Group By组件的一些核心功能介绍&#xff1a; 1. Mean (平均数): 数据值的总和除以数据项的数量&#xff0c;显示数…