计算二进制中‘1’的个数是多少?
我们知道平时我们使用的是10进制数,想知道10进制整数对应的二进制数中‘1’的个数是多少?比如说 15 对应二进制中‘1’的个数是 4 而255 则是 8个,希望高手给出代码怎么实现,最好不要使用移位运算 用移位多好- -不用的话,循环除2,余1就个数+1.直到结果为0 呵呵{:5_154:} 在想想其他的方法啊{:5_156:} 本帖最后由 hslx111 于 2012-8-3 23:59 编辑
wljyy521 发表于 2012-8-3 23:39 static/image/common/back.gif
在想想其他的方法啊
取巧的方法吗?
uint count_three(uint data)
{
uint count = 0;
while(data)
{
data = data & (data-1);
count++;
}
return count;
}
其实和移位的思想差不多
en不错 除2 取模 接着除 再取模……把模相加
照搬10进制转换成2进制的思想…… wljyy521 发表于 2012-8-4 00:25 static/image/common/back.gif
en不错
回复的时候最好点下回复,这样能让别人也知道你回他的帖子了 移位就是最取巧的了,直接使用机器硬件
页:
[1]