与的作用,左移右移

这回你的任务很简单,就是简单的数数,不过是在二进制下计算哦,计算一个十进制数的二进制包含多少个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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值