参见英文答案 >
How to count the number of set bits in a 32-bit integer? 50个
我正在使用一个标志存储我所有装备的枪,并且只是想知道是否有可能检查位标志中包含多少个数字.
例如:
13将包含1,4和8
注意:
我是新手,因此我的问题可能没有多大意义,或者我可能使用了错误的术语,如果是这样,请告诉我,我将很乐意改变它.
最佳答案 既然你问:
How many numbers are contained in a bit flag?
这应该工作:
int CountBits(int n)
{
int count = 0;
do
{
int has = n & 1;
if (has == 1)
{
count ++ ;
}
} while((n >>= 1) != 0);
return count;
}