求任意两个不同进制非负整数的转换 第2页
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.}