求任意两个不同进制非负整数的转换 第2页

35.            c = str[i] - 'A' + 10; 
36.        } 
37.        //a - f  
38.        else{ 
39.            c = str[i] - 'a' + 10; 
40.        } 
41.        //累加该位数字和该位数字的权值的积  
42.        sum  +=  c * w; 
43.        //进制权值  
44.        w *= a; 
45.     } 
46.    return sum; 
47.} 
48./*
49.* 十进制数字num转换为b进制数字,并用ans存储
50.*/ 
51.int ToAny(long long int num,int b){ 
52.    int index = 0,c; 
53.    do{ 
54.        //计算该位数字  
55.        c = num % b; 
56.        //将数字转换为字符  
57.        ans[index++] = (c < 10) ? (c + '0') : (c - 10 + 'A') ; 
58.        num /= b; 
59.    }while(num); 
60.    return index; 
61.} 
62.int main() 
63.{ 
64.    long long int c; 
65.    int len,a,b,i;  毕业论文 
66.    while(scanf("%d %s %d",&a,str,&b) != EOF){ 
67.        //转换为十进制  
68.        c = ToD(a); 
69.        //转换为b进制  
70.        len = ToAny(c,b); 
71.        //输出  
72.        for(i = len-1;i >= 0;i--){ 
73.            printf("%c",ans[i]); 
74.        } 
75.        printf("\n"); 
76.    } 
77.    return 0; 
78.} 

上一页  [1] [2] 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有