How to count the even bits of a number in C

1 Answer

0 votes
#include <stdio.h>

void print_bits(unsigned int n) { 
    for (int i = 31; i >= 0; i--)
       printf("%d", (n >> i) & 1);
	printf("\n");
}

unsigned int count_even_bits(unsigned int n) { 
  unsigned int count = 0, i = 1; 
  while (n) { 
    if (i % 2 == 0) {
        count += n & 1; 
    }
    n >>= 1;
    i++;
  } 
  return count; 
} 
  
int main(int argc, char **argv) 
{
    int n = 1358; 
     
    print_bits(n);
    printf("%d\n", count_even_bits(n)); 
 
    return 0; 
}
     
       
/*
run:
     
00000000000000000000010101001110
2
  
*/

 



answered Mar 5, 2019 by avibootz
edited Mar 5, 2019 by avibootz

Related questions

1 answer 184 views
1 answer 108 views
1 answer 64 views
64 views asked Oct 25, 2025 by avibootz
1 answer 86 views
1 answer 188 views
...