正题

#include <stdio.h>
int main()
{
double a;//a:数
scanf("%lf",&a);
char a1[32];//用于输出二进制
int i=0;
a1[0]='0';
a1[1]='.';
while(a!=1)
{
a=a*2.0;
if(a>1)
{
a1[i+2]='1';
a=a-1;
}else if(a<1)
{
a1[i+2]='0';
}else if(a==1)
{
a1[i+2]='1';
break;
}
i++;
if(i>31)
{
break;
}
}
if(i>31)
{
printf("error\n");
}
else
{
for(int j=0;j<32;j++)
{
if((a1[j]=='0')|(a1[j]=='1')|(a1[j]=='.'))
printf("%c",a1[j]);
}
}
}
本文介绍了一段C语言代码,该代码实现了一个将浮点数转换为二进制字符串的功能。通过不断乘以2并判断整数部分,可以得到小数点后的二进制位,直至达到精度限制或数值完全转换。
2万+

被折叠的 条评论
为什么被折叠?



