关闭

计算十进制数中对应2进制数的1的个数

标签: c
143人阅读 评论(0) 收藏 举报
分类:

例如:输入整数n,对应求法如下

for(c=0; n; ++c){

    n&=(n-1);

}

return c

n&=(n-1)是清除n最右边的1,如(1000)= 7(0111)+ 1(0001),所以8 & 7 = (1000)&(0111)= 0(0000),清除了8最右边的1

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34958次
    • 积分:527
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:30篇
    • 译文:0篇
    • 评论:1条
    最新评论