For the specific problem you mentioned: when you called bits2.set(1000001)
, you set the one millionth and first bit to true. Then when you intersected with bits1
, which had the one million, 111 thousand, and 111st bit set, they had no bits in common.
I think what you meant to do was
bits2.set(0); // set the 0th bit
bits2.set(6); // set the 6th bit
Does this help clear things up?