前几天看一些同学编写的程序转换几乎都用了数组,其实用递归会很简单,但算法不是很好,当数字很大时会占用很大的内存,同时计算时间会加长。但可以直接实现逆向输出。
#include <stdio.h>
void to_B (unsigned int num1);
int main ( void )
{
unsigned int a;
printf ("Input the number :");
while (1==scanf ("%u",&a))
{
to_B (a);
putchar ('B');
printf ("\nInput the number :");
}
return 0;
}
void to_B (unsigned int num1)
{
unsigned int x=0;
if (num1>0)
{
x=num1%2;
to_B(num1/2);
printf ("%u",x);
}
else
{ if (num1%2)
putchar('1');
else
putchar('0');
}
return ;
}
一个用递归实现的把一个十进制整数转换成二进制数的C程序