`
韩冬冬
  • 浏览: 14267 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

bitset 操作

 
阅读更多
#include "stdafx.h"
#include <iostream>
#include <bitset>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    bitset<32> bitvec(8);
	bool flag = bitvec.any();//判断是否存在某位或者多位为1,有则返回true
	bool flag1 = bitvec.none();//判断是否所有的位都是0,是则返回true
	bool flag2 = bitvec.test(3);//测试第4位是否为1,是则返回true
	cout<<"第4位为:"<<bitvec[3]<<endl;//输出第4位的值
	bitvec.reset(3);//将第4位设置为0,或者bitvec[3] = 0
	cout<<"第4位为:"<<bitvec[3]<<endl;//输出第4位的值
	bitvec.reset();//将所有位设置为0
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	bitvec.set();//将所有位设置为1
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	bitvec = 8;
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	bitvec.flip();//将所有的位翻转
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	bitvec.flip(0);//翻转第一位
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	bitvec = 0xffff;//设置低16位为1
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	bitvec = 012;//用八进制值012设置bitvec
	cout<<"bitvec的值为:"<<bitvec.to_string()<<endl;
	string bit = "1011";
	bitset<32> bitvec1(bit);//用字符串对象初始化bitset<32>对象
	cout<<"bitvec1的值为:"<<bitvec1.to_string()<<endl;
	string bit1 = "1111110101100011010101";
	bitset<32> bitvec2(bit1,6);//用 从第6位开始到字符串结束 这一部分 初始化bitvec2 
	cout<<"bitvec2的值为:"<<bitvec2.to_string()<<endl;
	bitset<32> bitvec3(bit1,6,4);//用 从第6位开始,长度为4 这一部分 初始化bitvec3;
	cout<<"bitvec3的值为:"<<bitvec3.to_string()<<endl;
}
 

 

分享到:
评论

相关推荐

    藏经阁-ENGINEERING FAST INDEXES (DEEP DIVE).pdf

    cardinality TRACKING是bitset操作的核心要素。我们需要跟踪bitset的cardinality,以避免误判的分支。在Roaring模型中,我们使用automagically方式来跟踪bitset的cardinality。 高级API或Sipping Straw 高级API或...

    bitset用法 bitset用法

    `bitset`的主要功能是存储位序列,并提供了丰富的成员函数来对这些位进行操作。下面我们将详细介绍`bitset`的用法。 #### 一、初始化Bitset 1. **默认初始化**: ```cpp bitset&lt;n&gt; b; ``` 其中`n`代表`bitset`...

    动态Bitset源代码

    也就是说,这个bs只能支持64位以内的位存储和操作;bs一旦定义就不能动态增长了。本资源附件中实现了一个动态Bitset,和标准bitset兼容。 /** @defgroup Bitset Bitset位集类 * @{ */ //根据std::bitset改写,函数...

    对java的BitSet的多线程并发的探索

    Java的BitSet是一个实用工具类,它提供了位操作的功能,常用于存储一组可变的布尔值。在多线程并发环境中,对BitSet的操作需要特别注意,因为位操作本身是原子性的,但BitSet的大部分方法并不是线程安全的。这篇博文...

    全国计算机等级考试二级Java上机真题南开一百题.pdf

    题目中要求使用BitSet筛选素数,但并未给出具体的BitSet操作代码。通常,我们需要初始化BitSet,然后遍历2到1023,对于每个数i,如果它在BitSet中为true,就将所有2i, 3i, ... , i^2 的倍数设置为false,因为这些...

    c++ bitset实现

    `C++ bitset` 是一个内置的类型,用于在内存中高效存储和操作位序列。在C++标准库中,`&lt;bitset&gt;` 头文件提供了`std::bitset` 类模板,它允许我们创建一个固定大小的位集合,类似于二进制数。然而,题目中的描述表明...

    Go-bitset-Go包实现bitsets

    Go的`bitset`包实现了这个概念,提供了快速的插入、删除和查询操作,对于处理大量布尔状态或者节省内存非常有用。在本文中,我们将深入探讨`bitset`包的实现和使用方法。 1. **bitset的基本概念** - 位集是用二...

    C++下bitset简介

    C++中的`bitset`是一个非常实用的容器,它允许我们以数组的形式操作位,从而方便地处理位级别的逻辑运算。`bitset`是C++标准库的一部分,属于STL(Standard Template Library),它提供了高效且易用的方法来管理一组...

    java 原生包 BitSet 源码

    Java中BitSet类是Java集合框架的一部分,它是一种用于处理位操作的高级数据结构。BitSet可以看作是一个只存储布尔值的数组,但相比于原始的布尔数组,BitSet更加内存高效,因为它以64位的块(word)来存储多个布尔值...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

     17.2.2 bitset操作 643  17.3 正则表达式 645  17.3.1 使用正则表达式库 646  17.3.2 匹配与Regex迭代器类型 650  17.3.3 使用子表达式 653  17.3.4 使用regex_replace 657  17.4 随机数 659  17.4.2 其他...

    C++Primer(第5版 )中文版(美)李普曼等著.part2.rar

     17.2.2 bitset操作 643  17.3 正则表达式 645  17.3.1 使用正则表达式库 646  17.3.2 匹配与Regex迭代器类型 650  17.3.3 使用子表达式 653  17.3.4 使用regex_replace 657  17.4 随机数 659  17.4.2 其他...

    前端项目-bitset.js.zip

    - **计算效率**:通过高效的位运算,bitset.js能够快速完成位级操作,尤其是在进行大量位运算时,速度远超基于数组的操作。 4. **实际应用** - **布局面板**:在前端UI中,当需要表示大量可切换的状态(如多选...

    Java编程中的HashSet和BitSet详解

    BitSet的主要特点是它可以高效地存储和操作大量的布尔值数据。BitSet的实现基于位数组(Bit Array),因此它可以非常高效地存储和检索数据。 那么,为什么Apache Commons作者选择使用BitSet代替HashSet呢?主要原因...

    简单谈谈C++ 头文件系列之(bitset)

    在本文中,我们将深入探讨`bitset`的使用、特性和操作。 首先,包含`&lt;bitset&gt;`头文件后,我们就可以使用`bitset`类来创建和操作位集。创建一个`bitset`对象时,需要指定位集的长度,这是一个非负整数,表示位集包含...

    浅谈Java BitSet使用场景和代码示例

    通过逻辑与、逻辑或和逻辑异或操作,可以使用一个 BitSet 修改另一个 BitSet 的内容。 什么是 BitSet? BitSet 类实现了一个按需增长的位向量。位 Set 的每一个组件都有一个 boolean 值,用非负的整数将 BitSet 的...

    shpm-direction-example

    可能有一个`Direction`类,用于封装BitSet操作,以及相关的测试类或方法,用于展示如何使用这些操作。 总的来说,这个示例项目提供了一个实用的方法,用以处理和存储发货方向这种具有多种可能状态的数据,通过高效...

    开源项目-xojoc-bitset.zip

    在C++中,标准库提供了一个名为`std::bitset`的类模板,允许用户方便地创建和操作位集。不过,这个开源项目xojoc-bitset可能是对标准库的一个扩展或者优化,可能包含更高级的功能,如并行操作、自定义大小、位运算的...

    C++标准库bitset类型的简单使用方法介绍

    通过使用bitset,我们可以像使用数组一样使用位,实现对二进制数据的灵活操作。 bitset类型的定义和初始化 bitset类型可以通过多种方式进行定义和初始化。例如: * bitset&lt;n&gt; b; // 定义一个bitset对象b,具有n个...

    c++ 位操作 总结

    bitset容器还支持与传统C位操作及字符串的转换,例如: * 通过 `to_string()` 成员将容器转输出为一个string字符串 * 通过 `to_long()` 成员将容器输出到传统的用于C风格的位容器中 C++位操作是一种灵活而强大的...

Global site tag (gtag.js) - Google Analytics