统计1的个数

求int型正整数在内存中存储时1的个数

http://www.nowcoder.com/questionTerminal/440f16e490a0404786865e99c6ad91c9

解题思路

位运算计算有多少个1.
与1 &运算。最低位1则结果为1,为0则结果为0.
然后向右位移一位。

代码

#include<stdio.h>

int main()
{
    int n, count, i;

    while (scanf("%d", &n) != EOF) {
        count = 0;

        for (i = 1; i < 32; i++) {
            count += (n & 1);
            n = n >> 1;
        }
        printf("%d\n", count);
    }
    return 0;
}

这一题要分下下数据的特性,数据在计算机中以2进制存储,要么0要么1.正好有基于2进制的位运算。

全部评论

相关推荐

11-23 17:35
已编辑
济宁学院 Java
不想做程序员:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
头像
11-26 14:50
门头沟学院 C++
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务