递归进制转换

算法问题总是很复杂,我每次都觉得会了,每次一到稍微涉及一点儿算法的地方都要想好久。

 

以下 10进制转换成2进制:

 

#include <iostream>

void tenToB(int a);
void packageForT2B(int a);
int main() {
    
    packageForT2B(13);
    packageForT2B(6);
    return 0;
}

void packageForT2B(int a){
    printf("输入的十进制数字是%d,它的二进制形式是:
",a);
    tenToB(a);
    printf("
");
}
void tenToB(int a){
    int rest=a%2;
    if(a/2>2){
        tenToB(a/2);
    }else{
        printf("%d",a%2);
    }
    printf("%d",rest);
}

 

10进制转化成16进制。

示例代码:

#include <iostream>

void tenToHex(int a);

void function1(void);

void packageForT2H(int a);
int main() {
    //function1
    
    packageForT2H(100);
    packageForT2H(239);
    return 0;
}
void function1(void){
    char str[]={"0123456789ABCDEF"};
    printf("%c",str[15]);
    printf("%c",str[8]);
    printf("%c",str[1]);
}

void packageForT2H(int a){
    printf("输入的十进制数字是%d,它的16进制形式是:
",a);
    tenToHex(a);
    printf("
");
    
}

void tenToHex(int a){
    char str[]={"0123456789ABCDEF"};
    int rest=a%16;
    if(a/16>16)
    {
        tenToHex(a/16);
    }
    else{
        printf("%c",str[a/16]);
    }
    printf("%c",str[a%16]);
    
}

运行结果:

 

原文地址:https://www.cnblogs.com/letben/p/5210521.html