#include <stdio.h>

int main(void) {
    unsigned int v = 0xCF31; // some number
    v = v - ((v >> 1) & 0x55555555);                    // reuse input as temporary
    v = (v & 0x33333333) + ((v >> 2) & 0x33333333);     // temp
    unsigned int c = ((v + (v >> 4) & 0xF0F0F0F) * 0x1010101) >> 24; // count
    printf("%u\n", c);
    return 0;
}