为了账号安全,请及时绑定邮箱和手机立即绑定

编写程序一个正整数x在二进制下的位数

编写程序一个正整数x在二进制下的位数

C
我是好学生666 2017-03-15 20:41:51
#include<stdio.h>int main(){ int x; scanf("%d\n",&x); int a=0;while(x%2!=0) { x=x%2; a=a+1;   }printf("一个正整数x在二进制下的位数:%d\n",a);return 0;  }各位大神,能不能告诉我这个程序错在哪里
查看完整描述

1 回答

?
MinRam

TA贡献87条经验 获得超24个赞

循环体错了。(循环判断和里面的算法都错了)

int x = 4 // 假设让x = 4 ,则x的二进制为 100b

while(x%2!=0)   // 显然进入不了循环
{
x=x%2;          // x经过这次运算  4->0   显然未达到缩减一位二进制位的目的
a=a+1;  
}

自己尝试改下。如果还是不懂请追问。

查看完整回答
反对 回复 2017-03-15
  • 1 回答
  • 0 关注
  • 1779 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信