BitSet没有方便的方法来接受像这样的位串。我在下面提供了一些,现在这个例子按照你的预期工作。请注意,这使用Java 7中的新功能;它很容易在网上找到这些方法的实现,如果你想如果你想与位工作,你可以在Java 7中使用int
值使用Java 6
import java.util.BitSet;
class Scratch {
public static void main(String[] args) {
BitSet bits1 = fromString("1000001");
BitSet bits2 = fromString("1111111");
System.out.println(toString(bits1)); // prints 1000001
System.out.println(toString(bits2)); // prints 1111111
bits2.and(bits1);
System.out.println(toString(bits2)); // prints 1000001
}
private static BitSet fromString(final String s) {
return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
return Long.toString(bs.toLongArray()[0], 2);
}
}
http://en.wikipedia.org/wiki/Bitwise_operation - 他们的工作方式与他们在使用'&|时相同。 ^'等与原始数字类型。 – 2012-02-17 18:49:04
什么,具体来说,你不明白?你创建一个BitSet,然后调用它的函数,比如'.and','.or'和'.xor'。每个函数都将另一个BitSet对象作为参数。 – Tony 2012-02-17 18:51:49
嗯,我试着对上面的例子做一个'和',并且bitset变空了。 – 2012-02-17 18:58:40