Java 位集示例

新手上路,请多包涵

我正在寻找一个好的 Java BitSet 示例来处理 0 和 1。我尝试查看 Javadocs,但仅通过阅读我无法理解该类的用法。 For instance, how would the and , or , and xor methods work on two different BitSet objects?

例如:

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

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

  bits2.and(bits1);

  System.out.println(bits2);

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

原文由 Steffan Harris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 538
2 个回答

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

我想你的 意思

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

这有助于澄清问题吗?

原文由 Louis Wasserman 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

印刷

1000001

原文由 Peter Lawrey 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题