#include <stdio.h> #include <stdint.h> uint8_t count_set_bits(uint8_t reg) { // Your code here uint8_t i, count=0; for (i = 0; i < 8; i++) { if (reg & 1) count++; reg = reg >> 1; } return count; } int main() { uint8_t reg; scanf("%hhu", ®); printf("%u", count_set_bits(reg)); return 0; }
start with count=0
check the lsb before shifting right to increment the count or not.
shift right until end of 8 bit register
Test Cases
Test Results
Input
0
Expected Output