Java BitSet 示例

2022-08-31 15:44:28

我正在寻找一个很好的Java示例来处理0和1。我尝试查看Javadocs,但我只是阅读它就无法理解该类的用法。例如,、 和 方法如何在两个不同的对象上工作?BitSetandorxorBitSet

例如:

  BitSet bits1 = new BitSet();
  BitSet bits2 = new BitSet();

  bits2.set(1000001);
  bits1.set(1111111);

  bits2.and(bits1);

  System.out.println(bits2);

如果我这样做,它会返回为空,为什么会这样?bits2


答案 1

对于您提到的具体问题:当您调用 时,您将百万分之一和第一位设置为 true。然后,当您与 具有 100 万、111 千位和第 111 位的相交时,它们没有共同的位。bits2.set(1000001)bits1

我想你的意思是

 bits2.set(0); // set the 0th bit
 bits2.set(6); // set the 6th bit

这是否有助于解决问题?


答案 2

如果要使用位,可以使用 Java 7 中的值。int

int bits2 = 0b1000001;
int bits1 = 0b1111111;
bits2 &= bits1;
System.out.println(Integer.toBinaryString(bits2));

指纹

1000001

推荐