码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-12-25 09:36:10      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:blog   .com   src   ret   cas   har   tmp   std   ima   

代码:

#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进制

标签:blog   .com   src   ret   cas   har   tmp   std   ima   

原文地址:http://www.cnblogs.com/bing-z/p/6219029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!