Count Set Bits in an Integer

Code

#include <stdio.h>

int countSetBits(unsigned int n) {
   int count = 0;
//    for(int i=0;i<32;i++){
//      if(n & (1U << i)){
//         count++;
//      }
//    }
   while(n){
    count += (n & 1);
    n >>= 1;
   }
   return count;
}

int main() {
    int n;
    scanf("%d", &n);
    printf("%d", countSetBits(n));
    return 0;
}

Solving Approach

  • Initialize count = 0.
  • Loop through all 32 bit positions (0–31).
  • For each bit, use (n >> i) & 1 or (n & (1U << i)) to check if it’s set.
  • If set, increment count.
  • Return count.

 

 

Upvote
Downvote
Loading...

Input

5

Expected Output

2