查找一个数中1的个数

#include <iostream>
using namespace std;

void main(void)
{
     int dec,bin,i,m;
     cout<<"输入整数:";
     cin>>dec;
     cout<<dec<<"对应的2进制为:";
     m=sizeof(int)*8;    //int数据的比特数
     for(i=m-1;i>=0;i--) 
         cout<<(dec>>i&1);     //十进制转二进制,dec>>i&1由左向右结合
 
    for(bin=0;dec;dec&=dec-1)  //查找二进制中1的个数
         bin++;
     cout<<endl<<"其中1的个数为"<<bin<<endl;
     system("pause");
}

 

posted @ 2014-07-17 17:46  星雨夜澈  阅读(219)  评论(0编辑  收藏  举报