
#include<stdio.h>
int main()
{
int a[32];
int i=0,j=0,n;
float f;
int ten_2_int(int n,int a[]);
int ten_2_dec(float f,int a[]);
while(scanf("%f",&f)!=EOF)
{
if(f==0)
break;
n=ten_2_int((int)f,a);
//输出整数部分
if(n==0)
printf("0");
else
for(i=n-1;i>=0;i--)
printf("%d",a[i]);
printf(".");
n=ten_2_dec(f-(int)f,a);
//输出小数部分
i=0;
while(i<=5)
{
printf("%d",a[i]);
i++;
}
}
return 0;
}
int ten_2_int(int n,int a[])//十进制整数转二进制
{
int i=0;
while(n>0)
{
a[i]=n%2;
n=n/2;
i++;
}
return i;
}
int ten_2_dec(float f,int a[])//十进制小数转二进制
{
int i=0;
while(i<6)
{
f=f*2;
a[i]=(int)f;
f=f-a[i];
i++;
}
return i;
}
还没有评论,来说两句吧...