`

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用法bitset用法bitset用法bitset用法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兼容。 /*...

    C++ bitset的简单使用示例

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

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

    主要介绍了浅谈Java BitSet使用场景和代码示例,具有一定借鉴价值,需要的朋友可以参考下。

    acm相关资料vector、bitset

    acm相关资料vector、bitset、大数乘法等等

    可以动态扩展的bitset

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

    Go-bitset-Go包实现bitsets

    bitset - Go包实现 bitsets

    BitSet 源码分析.txt

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

    c++ bitset实现

    自己实现的bitset数据结构,在vs2005下编译通过。有测试成素。

    详解C++ bitset用法

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

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

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

    C++下bitset简介

    C++下的bitset,强大而简单的位运算功能,象使用数组一样对位进行操作

    认识C++中的bitset类型

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

    基于C++ bitset常用函数及运算符(详解)

    C++ bitset——高端压位卡常题必备STL ———————————————————— 以下内容翻译自cplusplus.com,极大地锻炼了我的英语能力。 bitset存储二进制数位。 bitset就像一个bool类型的数组一样,但是有空间...

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

    NULL 博文链接:https://huangyunbin.iteye.com/blog/2194731

    java 原生包 BitSet 源码

    Java 原生包 BitSet 源码,0~3年 Java 工程师必看,属于高级数据结构,利于进阶,面试必备!

    RoaringBitmap, 在Java中,一个更好的压缩 bitset.zip

    RoaringBitmap, 在Java中,一个更好的压缩 bitset RoaringBitmap Bitsets,也称为位图,通常用作快速数据结构。 不幸的是,他们可以使用太多的内存。 为了补偿,我们经常使用压缩位图。咆哮位图是压缩位图,它比传统...

    bitset:紧凑的位集实现

    BitSet支持的操作是: 得到 设置,设置全部 清除,清除全部 反转,全部反转 还有一种解析方法,该方法允许从零和一的字符串构造BitSet。 例子 package main import ( "fmt" "github.com/lazybeaver/bitset" ) ...

    java bitset 源码解析.rtf

    java bitset 高级数据结构 源码解析 适合 0-3 年开发人员,进阶、面试必备知识!

Global site tag (gtag.js) - Google Analytics