#include &盟敢势袂lt;iostream>//将十进制转为二进制,并输出其中1的个数。
usin爿讥旌护g namespace std;
int main()
{
int t,n,a[100];
int i,k,j;
cin>>t;
while(t--)//控制多组输入
{
i=j=0;
cin>>n;
while(n!=0)//该循环将十进制转为二进制并存入数组a
{
a[i++]=n%2;
n/=2;
}
for(k=i-1;k>=0;k--)//倒序输出二进制
{
if(k==i-1)cout<<a[k];
else cout<<" "<<a[k];
if(a[k]==1)j++;
}
cout<<endl;
cout<<j<<endl;//输出1的个数
}
return 0;
}
扩展资料
void ten_to_two( int n )
{ int i , j ; int a[1000] ; memset( a , 0 , sizeof(a) ); // 一定要记得每次运算前将a数组清零
i = n ;
j = 1 ; while(i){
a[j] = i & 1 ; //取最后一位
i >>= 1 ; //除以2
++ j ;
} for( i = 7 ; i >= 0 ; -- i ) // 将结果呈八位数输出 倒序!
//(如果想输出本来位数的话就把 7 改成 j - 1 就ok啦)
cout << a[i] ; cout << endl ;
}
参考资料:百度百科 进制转换