Counting bits set in a .Net BitArray Class

Posted by Sam on Stack Overflow See other posts from Stack Overflow or by Sam
Published on 2011-02-21T06:59:18Z Indexed on 2011/02/21 7:25 UTC
Read the original article Hit count: 206

Filed under:
|
|

I am implementing a library where I am extensively using the .Net BitArray class and need an equivalent to the Java BitSet.Cardinality() method, i.e. a method which returns the number of bits set. I was thinking of implementing it as an extension method for the BitArray class. The trivial implementation is to iterate and count the bits set (like below), but I wanted a faster implementation as I would be performing thousands of set operations and counting the answer. Is there a faster way than the example below?

count = 0;

for (int i = 0; i < mybitarray.Length; i++)
{

  if (mybitarray [i])
    count++;
}

© Stack Overflow or respective owner

Related posts about .NET

Related posts about algorithm