码迷,mamicode.com
首页 > 其他好文 > 详细

任意进制转换

时间:2020-04-09 00:32:48      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:大写   har   upper   code   break   long   字母   void   oid   

描述

  求任意两个不同进制非负整数的转换(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] != \0; 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 }

      

任意进制转换

标签:大写   har   upper   code   break   long   字母   void   oid   

原文地址:https://www.cnblogs.com/BlairGrowing/p/12663837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!