c语言由键盘给定一个正整数N,编程实现求该整数对应的二进制数中1的个数。在线等!

由键盘给定一个正整数N,编程实现求该整数对应的二进制数中1的个数。输入格式正整数N输出格式二进制数中1的个数输入样例14输出样例3... 由键盘给定一个正整数N,编程实现求该整数对应的二进制数中1的个数。

输入格式
正整数N

输出格式
二进制数中1的个数

输入样例
14

输出样例
3
展开
 我来答
背心_心背
2014-12-19 · TA获得超过449个赞
知道小有建树答主
回答量:644
采纳率:100%
帮助的人:509万
展开全部
  #include<stdlib.h>
  #include<stdio.h>
  int count1InNum(int num)
  {
  int result=0;
  while(num!=0)
  {
  num &=(num-1);
  result++;
  }
  return result;
  }
  //此方法如果num为负数,比如-7,则求的1的个数实际是7的二进制形式中1的个数
  int count(int num)
  {
  int result=0;
  while(num!=0)
  { if(num%2!=0) result++; num /= 2; }
  return result;
  }
  int main()
  {
  int num;
  scanf("%d",&num);
  while(num!=0)
  { char s[33]; itoa(num, s, 2);
  printf("The number of 1 in %d (%s) is %d.\n",num,s,count1InNum(num));
  printf("The number of 1 in %d (%s) is %d.\n",num,s,count(num));
  scanf("%d",&num); }
  getchar();
  return 0;
  }
kaixingui2012
2014-12-19 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6408万
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,x;
char s[33];
scanf("%d", &n );
itoa( n, s, 2 );
x=0;
for( i=0;s[i];i++ )
if ( s[i]=='1' )
x++;
printf("%d\n", x );
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5a0d684
2014-12-19
知道答主
回答量:6
采纳率:100%
帮助的人:2.2万
展开全部
#include<stdio.h>
int main()
{
int i,count=0;
scanf("%d",&i);
do{
if((i%2)!=0)
{
count++;
}
i=i/2;
}while(i>=1);
printf("%d\n",count);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式