任意数进制转换

来源:互联网 发布:手机的编程游戏平台 编辑:程序博客网 时间:2024/06/14 09:07
实现X进制转化为Y进制函数,其中X和Y为2到64之间的任意数. 
不允许使用任何库函数,如果必须使用,请自己实现.

CString convert(int input_mod, CString input_value, int output_mod)
举例:
convert(10, "2", 2)=="10"  //把十进制的"2"转换为二进制,为"10"

convert(16, "f",10)=="15"  //把十六进制的"f"转换为十进制,为"15"

#include<stdio.h>#include<string.h>void main(){    int i,m,n,s=0,t=1;char a[100],b[100];     gets(a);//用回车分割     scanf("%d%d",&n,&m); //输入的进制和想要转换的进制     for(i=strlen(a)-1;i>=0;i--)//先转10进制     {   if(n!=16)             s+=(a[i]-48)*t;        else           s+=(a[i]-55)*t;        t*=n;    }    for(i=0;s;i++)//10进制转你想要的进制     {        if(s%m>=10)            b[i]=s%m+55;        else             b[i]=s%m+48;        s/=m;     }     b[i]='\0';    for(i=strlen(b)-1;i>=0;i--)        printf("%c",b[i]); printf("\n");}


0 0
原创粉丝点击