// // main.c // bitcounts // // Created by Cheney Shen on 11-4-16. // Copyright 2011年 __MyCompanyName__. All rights reserved. // #include <stdio.h> static int bitcounts[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4}; int bitcount(unsigned int u) { int n = 0; for(; u != 0; u >>= 4) n += bitcounts[u & 0x0f]; return n; } int main (int argc, const char * argv[]) { return printf("%d", bitcount(1111111111111111111)); }