用位数组计算整数中1的个数
//
// 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));
}
posted on 2011-04-16 03:25 Cheney Shen 阅读(340) 评论(0) 收藏 举报
浙公网安备 33010602011771号