import java.util.*;

    class BitSetExample 
      { 
      public static void main (String args[]) 
        { 
        BitSet bits1;
        BitSet bits2;
        BitSet bits3;

        bits1 = new BitSet (64);          // 1-64 == 64, 65-128 == 128
        bits2 = new BitSet (64);          // 1-64 == 64, 65-128 == 128
        System.out.println 
          (
          "\nbits1.size() == " + bits1.size () 
          + " possible bit positions."
          );
        System.out.println ();

        bits1.set(0);                     // Set bit number 0 in bits1
        bits1.set(2);                     // Set bit number 2 in bits1
        bits2.set(1);                     // Set bit number 1 in bits2
        bits2.set(2);                     // Set bit number 2 in bits2
        bits3 = (BitSet) bits1.clone ();  // Create bits3 as a copy of bits1

        System.out.println ("The bits that are on in bits1 are " + bits1);
        System.out.println ("The bits that are on in bits2 are " + bits2);
        System.out.println ();

        bits1.and (bits2);
        System.out.println ("After: bits1 AND bits2...");
        System.out.println ("bits1: bit 0 is set?  " + bits1.get (0));
        System.out.println ("bits1: bit 1 is set?  " + bits1.get (1));
        System.out.println ("bits1: bit 2 is set?  " + bits1.get (2));
        System.out.println ("bits1 = " + bits1);
        System.out.println ();

        bits1 = (BitSet) bits3.clone ();
        bits1.or (bits2);
        System.out.println ("After: bits1 OR bits2...");
        System.out.println ("bits1: bit 0 is set?  " + bits1.get (0));
        System.out.println ("bits1: bit 1 is set?  " + bits1.get (1));
        System.out.println ("bits1: bit 2 is set?  " + bits1.get (2));
        System.out.println ("bits1 = " + bits1);
        System.out.println ();

        bits1 = (BitSet) bits3.clone ();
        bits1.xor (bits2);
        System.out.println ("After: bits1 XOR bits2...");
        System.out.println ("bits1: bit 0 is set?  " + bits1.get (0));
        System.out.println ("bits1: bit 1 is set?  " + bits1.get (1));
        System.out.println ("bits1: bit 2 is set?  " + bits1.get (2));
        System.out.println ("bits1 = " + bits1);
        System.out.println ();

        bits1 = (BitSet) bits3.clone ();
        System.out.println ("Before any bits are cleared, bits1 = " + bits1);
        bits1.clear (0);
        System.out.println ("After clearing bit 0,        bits1 = " + bits1);
        System.out.println ();
        } 
      } 

