如果我有一个,int i = 15;
我知道它是0x00 00 00 0F
二进制的,是二进制的0000 0000 0000 0000 0000 0000 0000 1111
4 1
。
我想计算1
一个 int 变量的总和。
我写这个:
int count1(int i)
{
int j = 0,num = 0;
for(;j<32;j++)
if((i<<j )&0x80000000)
num++;
return num;
}
它可以工作,但我认为它太慢了,我的意思是也许我有数百万int
数据。有人有更有效的方法来做到这一点吗?