Mid Coding

Count the number of set bits (1s) in binary representation of an?

integer

public int CountSetBits(int n) {

int count = 0;

while (n != 0) {

count += n & 1;

n >>= 1;

return count;

Explanation:

Shift through each bit; add 1 to count if least significant bit is set.

Alternative using Brian Kernighan’s algorithm:

public int CountSetBits(int n) {

int count = 0;

while (n != 0) {

n &= (n - 1); // Drops the lowest set bit

count++;

return count;

Follow on:

More from C# Programming Tutorial

All questions for this course