Count number of zero bits in unsigned integer

#include <stdio.h>

unsigned int count_zero_bits(unsigned int num) { unsigned int count = 0; unsigned int total_bits = sizeof(num) * 8;

for (unsigned int i = 0; i < total_bits; i++) {
    if ((num & (1U << i)) == 0) {
        count++;
    }
}

return count;

}

int main() { unsigned int num; printf("Enter an unsigned integer: "); scanf("%u", &num); printf("Number of zero bits in %u: %u\n", num, count_zero_bits(num)); return 0; }