0

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

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

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

4

2 回答 2

5

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

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

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

实际上,只需阅读 javadoc。

于 2011-03-29T14:16:19.580 回答
0

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

它有四种不同参数输入的设置方法-

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

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(不含)的位设置为指定值。

我会尽快举一个例子。

于 2011-03-30T03:51:55.037 回答