任意进制转换

Posted blairgrowing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任意进制转换相关的知识,希望对你有一定的参考价值。

描述

  求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

  输入输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。
a,b是十进制整数,2 =< a,b <= 16。

  输出输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。

样例输入:

15 Aab3 7

样例输出

210306
 1 void conversion( char s[],  long d1, long d2 )
 2 {
 3     long  i=0, j, t, num;
 4     char s2[100];
 5     char c;
 6     num = 0;
 7     for ( i = 0; s[i] != ; i++ )
 8     {
 9         if ( s[i] <= 9 && s[i] >= 0 )
10             t = s[i] - 0;
11         else t = toupper(s[i]) - A + 10;
12         num = num * d1 + t;//先转换为10进制
13     }
14     i = 0;
15     while (true)
16     {
17         t = num % d2;//一直取余,而后除
18         if ( t <= 9 )
19             s2[i] = t + 0;
20         else s2[i] = t + A - 10;
21         num /= d2;
22         if ( num == 0 )
23             break;
24         i++;
25     }
26     for (int k = i; k >=0; k--)
27         cout<<s2[k];
28     
29 }

      

以上是关于任意进制转换的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C片段将十进制转换为二进制

java任意进制转换

任意进制转换算法

C++ 十进制数转换成任意进制数

任意进制转换算法

任意进制间转换