计算一个数二进制中一的个数,并把这个数对应的二进制序列输出。
下面是程序:
#define _CRT_SECURE_NO_DEPRECATE 1
#include <stdio.h>
#include <stdlib.h>
int check_one(int input)
{
int count=0;
int a;
int i=0;
for(i=0;i<32;i++)
{
a=(input>>i)&1; //取出input中的第i位然后和1与再赋給a,这样就拿到了第i位
if(a=1)
{
count++;
}
}
return count;
}
void output_in_bin(int input)
{
int j=31;
int b;
printf("input对应的二进制数是:");
for(j=31; j>=0; j--)
{
b=(input>>j)&1;
printf("%d",b);
}
}
int main()
{
int input = 0;
int ret = 0;
scanf("%d",&input);
ret=check_one(input);
printf("input对应的二进制中1的个数是:%d \n",ret);
output_in_bin(input);
system("pause");
return 0;
}
当然了 你可以把计算1的个数和输出二进制序列放下一起实现,不过一个子函数最好专门实现一个功能。
运行结果: