Ⅰ 怎用c语言求一个数的二进制
用栈实现,用520除2把所得余数进栈,把商作为新的数除2,再把余数进栈,取商为新的数,如此往复直到商为1为止,然后把栈中的数依次输出后的1、0组合即为所求数的二进制数。
具体的代码不便粘贴,有兴趣欢迎交流
Ⅱ c语言刚入门,问一下十进制如何转换二进制,并判断输入的十进制是否合法
十进制转化为二进制可以采用递归的方法或者数组加循环的方法。要判断一个十进制数是否合法,首先需要知道什么样的实数才是合法的。使用C语言的输入函数输入时C语言系统自动会过滤不合法的字符。遇到非十进制的字符,它会自动结束读取。所以说,具体什么样的情况属于非法要有更加进一步的说明,并且给出例子。下面的程序是判断一个输入的年龄是否合法,并且把它合法的年龄转换为二进制的程序。
#include
void dec2bin(int n)
{if(n>1)dec2bin(n/2);
printf("%d",n%2);
}
int main()
{ int age; //年龄,若为负数,或>150认定为非法
scanf("%d",&age);
if(age150)
printf("Invalid age!");
else
{printf("%d=(",age);
dec2bin(age);
printf(")2
");
}
return 0;
}
Ⅲ 十进制正整数通过dec2bin转化为二进制的,并将转化结果输出,怎么些c语言。
1:m%2
2:bin[j]
Ⅳ c语言判断二进制中1的个数
c语言判断二进制中1的个数:
#include <stdio.h>
void dec2bin(int x)
{ if(x>1)dec2bin(x/2);
printf("%d",x%2);
}
int count1(int x)
{ int n;
for(n=0; x; x/=2)
n+=x%2;
return n;
}
int main()
{ int x;
scanf("%d",&x);
dec2bin(x);
printf(" %d的二进制中有%d个1 ",x,count1(x));
return 0;
}