查看: 161|回复: 0

[源码] 【纯原创】C语言进制转换器

[复制链接]

0

技术

4

魅力

1

原创

网站编辑

心如止水

Rank: 8Rank: 8

积分
8794
人气
52
分享
471

最佳新人活跃会员

发表于 2024-3-3 21:29:52 | 显示全部楼层 |阅读模式
本帖最后由 faryou 于 2024-4-6 13:56 编辑

[C] 纯文本查看 复制代码
#include <stdio.h>

int n,m,ten;
char a[15],ans[15];

int n_ten(int n){
        int answer=0;
        for(int i=0;a[i]!='\0';i++){
                if(a[i]>='0' && a[i]<='9') answer=answer*n+a[i]-48;
                if(a[i]>='A' && a[i]<='F') answer=answer*n+a[i]-55; 
        }
        return answer;
}
void ten_m(int a,int m){
        int b=0,i=a;
        while(i>0){
                if(i%m<=9) ans[b]=i%m+48;
                if(i%m>=10) ans[b]=i%m+55;
                i = (i-i%m)/m;
                b++;
        } 
        return ;
}

int main(){
        scanf("%d%s%d",&n,a,&m);
        ten=n_ten(n);
        if(m!=10){
                ten_m(ten,m);
                int n=strlen(ans);
                for(int i=n-1;i>=0;i--) printf("%c",ans[i]);
        } 
        else printf("%d",ten);
        return 0;
}



说明:共输入三个数:第一个数是原数进制,第二个数是原数,第三个数是要转化到的进制数;输出结果数。
faryou的导航站
目前是区信奥队队员,正在学习算法
别把我当回事儿,我只是一个卑微的初中生……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表