追答:
#include
int ShiToEr(int a,int* b)
{
//用短除法的原理
int i=0;
while(1)
{
b[i]=a%2; //取余数,把余数保存在数组
a=a/2;
if(a==0) //如果a=0,表示除完了 ,就结束
break;
else
{
++i;
continue; //a!=0,还没除完,那就继续
}
}
return i; //i,用来表示数组里到底有几个数,输出时好控制
}
int main()
{
int a,b[1000],i;
printf("请输入十进制的数: ");
scanf("%d",&a);
i=ShiToEr(a,b);
printf("对应的二进制数为: ");
for(int j=i;j>=0;--j)
printf("%d" ,b[j]);
printf("\n");
return 0;
}
那个负数好解决,但是那个小数的话,我还真没考虑过呢...值得思考