与的作用,左移右移

这回你的任务很简单,就是简单的数数,不过是在二进制下计算哦,计算一个十进制数的二进制包含多少个1.
如3的二进制是11,则包含2个1,2的二进制是10,则包含1个1

#include<iostream>

int count(int n){
    int count=0;
    int result;
    int i=0;
    while(i<32){
        result=1&n;/// 用1与n进行按位相与,得到数字n二进制最低位的值,会自动将n转为二进制,不管n原进制
        count+=result;
        i++;
        n=n>>1;//右移1位
    }
    return count;
}
int main(){
    int n;
    while(cin>>n)
        cout<<count(n)<<endl;
    return 0;
}
发布了13 篇原创文章 · 获赞 7 · 访问量 4326

猜你喜欢

转载自blog.csdn.net/qq_29230349/article/details/104434993