您的位置:首页 > 其它

计算位数的3种方法

2008-02-29 12:34 239 查看
方法1:

方法2:(为一个字节打表)

static unsigned char byte_bit_count[256];

int count_bits(unsigned int data)

方法3:(计算一个字种所有位(0,1)的和)

int count_bits(unsigned int x)

{

static unsigned int mask[]={0x55555555,

0x33333333,

0x0F0F0F0F,

0x00FF00FF,

0x0000FFFF};

int i;

int shift;

for(i=0,shift=1;i<5;i++,shift*=2)

x=(x&mask[i])+((x>>shift)&mask[i]);

return x;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: