C语言小程序―十进制小数转二进制小数

2014-11-23 21:45:57 · 作者: · 浏览: 5

#include

#define NUM 2
#define ZERO 0.000001

void integer(int n)
{
if(n>0)
{
integer(n/NUM);
printf("%d",n%NUM);
}
}

void decimal(double m)
{
if(m>ZERO)
{
m=m*NUM;
printf("%d",(long)m);
decimal(m-(long)m);
}
}

void main()
{
double f;
long n;

printf("请输入一个10进制的小数:");
scanf("%lf",&f);
if(f<0)
{
printf("-");
f=-f;
}
n=(long)f;
printf("转换成%d进制的小数为:",NUM);
integer(n);
printf(".");
decimal(f-n);
printf(" ");
system("pause");
}