十以内的进制转换(递归实现)
#include<stdio.h>
#define M 10 //M为转换之前的进制
#define N 2 //N为转换之后的进制
int trans(int n) {
if (n < N && n < M)
return n;
else
return n % N + M * trans(n / N);
}
int main(void) {
int n;
printf("请输入一个M进制的数n:");
scanf("%d", &n);
printf("将M进制的数n转化为N进制后的数为%d", trans(n));
return 0;
}
注意:本程序只能实现10以内的进制的任意转换,若要实现十六进制与其他进制的转换,可以先转换为二进制,利用每四个二进制数转换为一个十六进制数进行转换(若二进制的数位不能被4整除,则数位的左边用0补齐)