请问大家这个C语言程序有没有简单一点的作法,我刚接触C语言,所以想要个简单的做法,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/02 13:09:14
数制转换
采用递归方法,实现将十进制整数转换成二进制数(含整数部分与小数部分)。

//---------------------------------------------------------------------------

#include <stdio.h>
#define MD 1e-3/*转换小数时所需要的精度*/

void itobin(long int a)/*转换整数部分*/
{
if (a>1) itobin(a/2);
printf("%ld",a%2);
}
void ftobin(float a)/*转换小数部分*/
{
if (a>MD) {
a*=2;
printf("%d",(int)a);
if (a<1) ftobin(a);
else ftobin(a-1);
}
}
void db(float ca)/*分解出整数和小数,并分别转换*/
{

itobin((long int)ca);
putchar('.');
ftobin(ca-(long int)ca);

}
int main(void)
{
float a;
printf("请输入一个实数:");
scanf("%f",&a);
db(a);
return 0;
}
//---------------------------------------------------------------------------