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