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