题解 | #求int型正整数在内存中存储时1的个数#

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

https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9

#include <stdio.h>

int func(int x) { 
    int countx = 0; 
    while(x) { 
        countx ++; 
        x = x & (x - 1); 
    } 
    return countx; 
} 

int main() {
    int x;
    int cnt=0;
    scanf("%d",&x);
     cnt= func(x);
    printf("%d\n",cnt);
}

嘻嘻刷题的时候遇见的代码没想到这里运用上了,学以致用嗷~

int func(int x) { 

    int countx = 0; 

    while(x) { 

        countx ++; 

        x = x & (x - 1);  //求转换为二进制后,1的个数,其实还有一个是x=x|(x-1);找的是0 的个数~

    } 

    return countx; 

C语言刷题 文章被收录于专栏

自己从头开始刷的C语言

全部评论

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
努力成为C语言高手:质疑大祥老师,理解大祥老师,成为大祥老师
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务