`

BitSet(置位) 示例

    博客分类:
  • Java
 
阅读更多

//BitSet Demonstration.
import java.util.BitSet;
class BitSetDemo{
 public static void main(String[] args)
 {
  BitSet bs1 = new BitSet(16);
  BitSet bs2 = new BitSet(16);

  //set some bits
  for(int i = 0;i<16;i++){
   if((i%2) ==0) bs1.set(i);
   if((i%5) !=0) bs2.set(i);
  }
  System.out.println("Initial pattern in bs1:");
  System.out.println(bs1);
  System.out.println("\n Initial pattern in bs2:");
  System.out.println(bs2);

  //AND bits
  bs2.and(bs1);
  System.out.println("\n bs2 AND bs1:");
  System.out.println(bs2);

  //OR bits
  bs2.or(bs1);
  System.out.println("\n bs2 OR bs1:");
  System.out.println(bs2);

  //XOR bits
  bs2.xor(bs1);
  System.out.println("\n bs2 XOR bs1:");
  System.out.println(bs2);
 }
}

分享到:
评论
1 楼 astarring 2009-12-23  
Initial pattern in bs1:
{0, 2, 4, 6, 8, 10, 12, 14}

Initial pattern in bs2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}

bs2 AND bs1:
{2, 4, 6, 8, 12, 14}

bs2 OR bs1:
{0, 2, 4, 6, 8, 10, 12, 14}

bs2 XOR bs1:
{}


看了许欠,才把楼主的例子看懂。其实在进行第一次and操作的时候(也就是 bs2.and(bs1);)的时候,其实bs2它本身的值已经发生了改变。变成了{2, 4, 6, 8, 12, 14},再进行下次or操作的时候其实是用{2, 4, 6, 8, 12, 14}去和bs2{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}做逻辑or操作,所以得到的是:{0, 2, 4, 6, 8, 10, 12, 14}。再次做XOR的时候也是同样的道理,这时bs2已经和bs1的值是一样的了,值没有一个不相同的,结果就为空了。

相关推荐

    bitset用法 bitset用法

    ### Bitset用法详解 在C++编程语言中,`bitset`是一个非常有用的类模板,它可以帮助程序员高效地处理二进制数据。`bitset`的主要功能是存储位序列,并提供了丰富的成员函数来对这些位进行操作。下面我们将详细介绍`...

    C语言头文件 BITSET

    C语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC...

    动态Bitset源代码

    在C++的STL中实现由一个bitset类模板,其用法如下: std::bitset&lt;64&gt; bs; 也就是说,这个bs只能支持64位以内的位存储和操作;bs一旦定义就不能动态增长了。本资源附件中实现了一个动态Bitset,和标准bitset兼容。 /*...

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

    Java BitSet 使用场景和代码示例 Java BitSet 是 Java 中的一个重要类,它实现了一个按需增长的位向量。BitSet 的每一个组件都有一个 boolean 值,用非负的整数将 BitSet 的位编入索引。可以对每个编入索引的位进行...

    C++ bitset的简单使用示例

    bitset 一般代替 bool 数组使用,常用于优化空间,因为 bitset 中一个元素只占 1 bit。 bitset 的大小在定义使就需要确定。如果想要不定长的 bitset,就需要使用 vector。 bitset 的定义: bitset&lt;16&gt; bt; // 定义...

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

    Java的BitSet是一个实用工具类,它提供了位操作的功能,常用于存储一组可变的布尔值。...对于"service"这个文件名,可能是博文中的示例代码或者相关服务的描述,但由于具体内容未知,无法在此详细展开。

    Go-bitset-Go包实现bitsets

    5. **使用示例** - 创建一个位集:`bs := bitset.New(100)` - 设置位:`bs.Set(25)` - 查询位:`if bs.Test(25) { ... }` - 计算并集:`bs.Union(otherBS)` 6. **应用场景** - 在网络路由中,位集可以用来表示...

    c++ bitset实现

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

    可以动态扩展的bitset

    文档模仿STL库的BITSET写的一个bitset,但是和STL不同的是这个类是一个可以动态扩展的,使用方法和STL的类似,可以参考STL使用

    C++下bitset简介

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

    java 原生包 BitSet 源码

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

    dm-bitset.rar_thin

    This bitset type is a thin wrapper round a dm_array of 64bit words.This bitset type is a thin wrapper round a dm_array of 64bit words.

    BitSet 源码分析.txt

    基于JDK1.8的BitSet 源码分析, 描述了实现的原理 个方法的含义 虽然没有写出实际的测试代码 但是只要是细度了我的这个分析 在使用的时候就不是问题了

    详解C++ bitset用法

    C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。 下面是具体用法 构造函数 bitset常用构造函数有四种,如下 bitset&lt;4&gt; bitset1; //无参构造,...

    Java编程中的HashSet和BitSet详解

    Java编程中的HashSet和BitSet详解 HashSet和BitSet是Java编程中两个常用的集合类,它们都可以用来存储大量的数据,但它们之间有着明显的差异。那么,为什么Apache Commons作者选择使用BitSet代替HashSet呢?在本文...

    认识C++中的bitset类型

    认识标准库bitset类型  位是用来保存一组项或者条件的yes/no(1或者0)信息的一种简洁方法,那么位集是二进制位的有序集。C++中标准库提供的bitset类在我们程序中很有效的简化了对于位集的处理。  bitset对象的...

    前端项目-bitset.js.zip

    《前端项目:深入理解bitset.js库》 在前端开发中,高效的数据结构和算法是提升应用性能的关键。其中,bitset是一种特殊的数据结构,它在内存中以二进制位的形式存储数据,常用于大规模布尔值的高效管理。本文将...

    c++遗传算法,用bitset实现

    使用C++编写的遗传算法,代码量200行左右,供大家学习研究,互相交流。

    使用bitset实现毫秒级查询(实例讲解)

    使用bitset实现毫秒级查询实例讲解 bitset是Java中的一种数据结构,通过使用bitset可以实现毫秒级查询。下面我们将详细讲解如何使用bitset实现毫秒级查询。 bitset的内部实现是long数组,每一个位的默认值为false...

Global site tag (gtag.js) - Google Analytics