2012-06-16 21 views
1

我想计算一个BitSet对象中的总位数。方法length返回BitSet的“逻辑大小”:BitSet中最高设置位的索引加上1,而方法cardinality将给出对象中设置为1的总位数。如何计算BitSet对象中的总位数?

我想计算总比特数,包括0和1。我怎么做?

+1

我不认为这应该downvoting。 “长度”和“大小”之间的区别很混乱,命名恕我直言很不合适,文件很糟糕。 – maaartinus

回答

3

如何BitSet.size()?.....

+0

大小将返回此BitSet实际使用的空间位数,以表示位值。 – Saurabh

+0

我想计算位数而不是空间。 – Saurabh

+1

@Saurabh:我不认为'BitSet'是为此设计的;没有“最高”0的概念。 –

-1

site显示了如何将位集合转换成二进制字符串。然后,只需计算在仪器仪表库中的string.length()

+1

这是为什么降低?如果您认为这是不正确的/误导性的,至少要解释原因。 –

+2

@Disco 3:就像计算字符串的长度,首先将其所有字符放入列表中,然后恢复它,然后调用list.size()。完全没有效率。此外,链接的方法是完全破碎的,结果将永远是32. – maaartinus

+0

我错了......只用“int”的方法,所以它没有被破坏,只是不能用于这个问题。低效率(不必要的反向)和无用的(参见'Integer.toString(int i,int radix)')。 – maaartinus