45

/**
  语法:conversion(char s1[],char s2[],long d1,long d2);
  参数:s[]:原进制数字,用字符串表示
       s2[]:转换结果,用字符串表示
         d1:原进制数
         d2:需要转换到的进制数
 返回值:null
 注意:高于9的位数用大写'A'~'Z'表示,2~16位进制通过验证
*/
void conversion(char s[],char s2[],long d1,long d2){
    long i,j,t,num;
    char c;
    num=0;
    for (i=0;s[i]!='\0';i++){
        if (s[i]<='9'&&s[i]>='0') t=s[i]-'0'; else t=s[i]-'A'+10;
        num=num*d1+t;
        }
    i=0;
    while(1){
        t=num%d2;
        if (t<=9) s2[i]=t+'0'; else s2[i]=t+'A'-10;
        num/=d2;
        if (num==0) break;
        i++;
        }
    for (j=0;j<i/2;j++)
        {c=s2[j];s2[j]=s[i-j];s2[i-j]=c;}
    s2[i+1]='\0';
}

你可能感兴趣的:(45)