20行C语言递归求十进制转换为二进制
程序员文章站
2022-07-15 09:35:46
...
#include<stdio.h>
void to_binary(unsigned long n);
int main(void)
{
unsigned long number;
printf("输入一个十进制整数(输入非数字退出)\n");
while(scanf("%ul",&number)==1)
{
printf("二进制:");
to_binary(number);
printf("\n继续\n");
}
printf("结束\n");
}
void to_binary(unsigned long n)
{
if(n>=2)
to_binary(n/2);
putchar(n%2?'1':'0');
}
``
//推广到十进制转换为base=2-10进制
#include<stdio.h>
void to_base_n(int n,int base);
int main(void)
{
int number,b;
printf("输入一个十进制整数(输入非数字退出)\n");
while(scanf("%d",&number)==1)
{
printf("输入要转换的进制(2-10):\n");
scanf("%d",&b);
to_base_n(number,b);
printf("\n继续\n");
}
printf("结束\n");
}
void to_base_n(int n,int base)
{
if(n>=base)
to_base_n(n/base,base);
putchar('0'+n%base);
}