算法
将10进制的数转换成2-16进制中的一种
非递归实现
char a[N];
void convert(int n,int base)
{
int i;
i=0;
while(n){
a[i]=n%base;
if(a[i]>=10)
a[i]='A'+a[i]-10;
else
a[i]+='0';
i++;
n/=base;
}
i--;
while(i>=0)
printf("%c",a[i--]);
printf("\n");
}
递归实现
void convert(int n,int base)
{
char digit;
if(n){
convert(n/base,base);
digit=n%base;
if(digit>=10)
digit='A'+digit-10;
else
digit+='0';
printf("%c",digit);
}
}
说明:对于0进行单独处理即可
题目