    #include <stdio.h>
    #include <memory.h>
     
    void printb(unsigned int x);
    int bitcount(unsigned x);
 
     
     
    int main(void){
    	int i;
    	unsigned int x = 0xFF30;
     
    	printb(x);
    	printf("%d\n", bitcount(x));
     
     
     	return 0;
    }
     
    int bitcount(unsigned x){
    	int b = 0;
     
    	while(x > 0)
    		if(x &= (x-1))
    			b++;
    	return ++b;
    }
     
    void printb(unsigned int x){
    	int i;
    	int mask = 0x1;
     
    	for(i = 15; i >= 0; i--){
    		printf("%d", (x >> i) & mask);
    		if((i % 4) == 0) putchar(' ');
    	}
    	putchar('\n');
    }