如何修改BitSet类对象的各个位

时间:2011-03-29 14:07:13

标签: java bitset

实施例: 我有一个120位的BitSet(010 * 0 * 001000 ......)。现在我想修改第4位,将其设置为0到1。

SET(4,TRUE) - 像这样的东西。它可以用Java完成吗?

我可以通过cov =将bitset转换为Char []数组,然后更改确切位并再次将其反转回Bitset,但它会使用大量不必要的内存并且会妨碍性能。一个例子就好了。 如果需要更多说明,请通过您的意见告诉我。

2 个答案:

答案 0 :(得分:5)

javadoc中描述了BitSet API,并且有许多set(...)方法可用于设置或清除单个位或位范围。

BitSet b = ...
b.set(4, true);

阅读javadoc以了解您是否使用了正确的索引值。 (从零开始计数与从一开始计数。)

实际上,只需阅读javadoc。

答案 1 :(得分:0)

是的,我们实际上可以做到这一点。 BitSet类提供了设置和清除单个位的方法。

它有四种方法,具有不同的参数输入 -

1.set(int bitIndex) - 将指定索引处的位设置为true。

2.set(int bitIndex,boolean value) - 将指定索引处的位设置为指定值。

3.set(int fromIndex,int toIndex) - 将指定fromIndex(包括)中的位设置为指定的toIndex(不包括)为true。

4.set(int fromIndex,int toIndex,boolean value) - 将指定的fromIndex(包括)中的位设置为指定的toIndex(不包括)指定的值。

我试着尽快提供一个例子。