今天想到了一个利用递归实现任意进制转换的方法,觉得很好用,在这里记录一下。
#include <stdio.h>
int ary = 2; //存放进制 默认为二进制
char array[] = {'1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void my_binary_output(int num) //递归 实现进制转换
{
int i;
if( num < ary )
{
printf("%c",array[(num%ary-1)]);
}
else{
my_binary_output(num/ary);
printf("%c",array[(num%ary)-1]);
}
}
int main(int argc,char **argv)
{
int my_num;
printf("Please input a number and ary:\n");
scanf("%d %d",&my_num,&ary);
printf("My binary output is :");
my_binary_output(my_num);
}