register int i, v=0b10101111;
unsigned int n=0;
for(i=1;!(i&512);i<<=1) n+=(i&v)?1:0;
printf("%d\n",n);

上で罵倒してる奴ら、registerの意味も知らなさそうw