2011-03-29 26 views
0

示例: 我有一个120位的位集(010 * * 001000 ......)。现在我想修改设置为0的第4位为1.如何修改BitSet类对象的各个位

SET(4,TRUE) - 类似这样的东西。它可以在Java中完成吗?

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

回答

5

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

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

阅读的javadoc,以找出是否您使用索引的权值。 (从零开始计数,从一开始计数)

其实,刚刚阅读javadoc。

+0

+1“实际上,只是阅读javadoc”。 – 2011-04-08 07:46:25

0

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

它有不同的参数四套方法输入 -

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

我试图很快包括一个例子。