Possible Duplicates:
Count the number of set bits in an integer
Best algorithm to count the number of set bits in a 32-bit integer?
That's an exam question and that is all I have - "Count the number of bits that are "on" in a byte" "On" means 1, I assume. Do I need to create a BitArray, randomly populate it and then iterate through it or is there a different way?
-
check out en.wikipedia.org/wiki/Hamming_weightJavaKungFu– JavaKungFu2011年03月21日 19:37:54 +00:00Commented Mar 21, 2011 at 19:37
-
Also related - Counting bits set in a .Net BitArray ClassRBT– RBT2018年06月22日 00:02:57 +00:00Commented Jun 22, 2018 at 0:02
2 Answers 2
Using BitArray might be efficient but you could also do
byte b = ... ;
int count = Convert.ToString(b,2).ToCharArray().Count(c => c=='1');
Is this a interview question?
For a byte the fastest way would be to pre-compute an array such that a[i] = number of bits in i - the memory overhead is negligible.