//任意输入一个整数,判断其二进制为多少且计算其二进制中1的个数
#include<stdio.h>
#include<math.h>
#define N 8//8位机,以几位机表示就改正N
void Count_1(int n,int a[])
{
int i=1,cnt=0,t=0,x;
x=n;//记录n的正负
while(n||t<N){
if(n>=0){//输入为正整数
a[i++]=n%2;
n=n/2;
t++;
}
else{//输入为负整数
n=abs(n);
a[i++]=n%2;
n=n/2;
t++;
}
}
if(x<0){//符号位
a[N]=1;
}
for(i=N;i;i--){
if(a[i]==1){//记录1的数目
cnt++;
}
printf("%d",a[i]);
}
printf("\n");
printf("%d",cnt);
}
int main()
{
int n;
int a[N];
printf("Please input the n:");
scanf("%d",&n);
Count_1(n,a);
return 0;
}