进制转换

十以内的进制转换(递归实现)

#include<stdio.h>
#define M 10 //M为转换之前的进制
#define N 2 //N为转换之后的进制

int trans(int n) {
   
    if (n < N && n < M)
        return n;
    else
        return n % N + M * trans(n / N);
}

int main(void) {
   
    int n;
    printf("请输入一个M进制的数n:");
    scanf("%d", &n);
    printf("将M进制的数n转化为N进制后的数为%d", trans(n));
    
    return 0;
}

注意:本程序只能实现10以内的进制的任意转换,若要实现十六进制与其他进制的转换,可以先转换为二进制,利用每四个二进制数转换为一个十六进制数进行转换(若二进制的数位不能被4整除,则数位的左边用0补齐)

全部评论

相关推荐

04-03 22:41
兰州大学 C++
老六f:有时候是HR发错了,我之前投的百度的后端开发,他给我发的算法工程师,但是确实面的就是百度开发
点赞 评论 收藏
分享
肖先生~:先别说工资,现在有个工作就不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务