递归 将一个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  递归中的外部形参变实参,一系列操作后,数据再设置为内部形参,是一大特点。

运行:

 

posted on 2016-12-25 08:51  zzdoit  阅读(699)  评论(0编辑  收藏  举报

导航