首页 > 代码库 > 递归 将一个10进制数,转换为16进制

递归 将一个10进制数,转换为16进制

代码:

#include <stdio.h>

char HexToChar(unsigned int num)
{
    switch(num)
    {
        case 0 :
            return 0;
        case 1 :
            return 1;
        case 2 :
            return 2;
        case 3 :
            return 3;
        case 4 :
            return 4;
        case 5 :
            return 5;
        case 6 :
            return 6;
        case 7 :
            return 7;
        case 8 :
            return 8;
        case 9 :
            return 9;
        case 10 :
            return a;
        case 11 :
            return b;
        case 12 :
            return c;
        case 13 :
            return d;
        case 14 :
            return e;
        case 15 :
            return f;
            
    }
    return 0;
}

void MyHex(unsigned int num)
{
    unsigned int tmp = num%16;
    if(num > 16 )
        MyHex(num / 16);
    printf("%c",HexToChar(tmp));
}
    
int main()
{
   int a =100111;
    scanf("%d",&a);
    MyHex(a);
   printf("\n");
   
   return 0;
}

高亮部分是这段代码利用“递归”的关键所在:1  递归要有重要的退出条件  2  递归中的外部形参变实参,一系列操作后,数据再设置为内部形参,是一大特点。

运行:

技术分享

 

递归 将一个10进制数,转换为16进制