模版:不同进制之间的数据转换
AC代码:
import java.io.*;
import java.util.*;
import com.sun.source.doctree.UnknownBlockTagTree;
import java.math.BigInteger;
import java.nio.Buffer;
import java.time.DayOfWeek;
public class Main
{
static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
static Mycomparator cmp = new Mycomparator();
static int N = (int)1e5 + 10;
static Stack<Character> stack = new Stack<>();
public static void main(String[] args) throws NumberFormatException, IOException
{
int ten = 0; // ten表示转换成的十进制数
int n = rd.nextInt(); // 原来数的进制
char num[] = rd.next().toCharArray(); // 原来的数(n进制)
int m = rd.nextInt(); // 表示转换之后数的进制m
//1、n进制转换为十进制
for(int i = num.length - 1, k = 0 ; i >= 0 ; i --,k ++)
{
int temp;
if(num[i] >= 'A' && num[i] <= 'F') // 如果n大于10
{
temp = num[i] - 'A' + 10;
}
else
{
temp = num[i] - '0'; //使用ascii码实现字符->数字的转换
}
ten += temp*Math.pow(n, k); //累加
}
//2、十进制转换为m进制,在这里我们使用栈进行存储
while(ten > 0)
{
int u = ten % m;
ten /= m;
char temp;
if(u >= 10)
{
temp = (char) ('A' + u - 10);
}
else
{
temp = (char) (u + '0');
}
stack.add(temp);
}
//3、输出答案,栈逆序输出
for(int i = stack.size() - 1 ; i >= 0 ; i --) pw.print(stack.get(i) + " ");
pw.flush();
}
}
class rd
{
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer tokenizer = new StringTokenizer("");
static String nextLine() throws IOException { return reader.readLine();}
static String next() throws IOException
{
while(!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(nextLine());
return tokenizer.nextToken();
}
static int nextInt() throws NumberFormatException, IOException { return Integer.parseInt(next()); }
static long nextLong() throws NumberFormatException, IOException { return Long.parseLong(next()); }
static double nextDouble() throws NumberFormatException, IOException { return Double.parseDouble(next()); }
static BigInteger nextBigInteger() throws IOException { return new BigInteger(next()); }
}
class PII
{
int x,y;
public PII(int x, int y)
{
this.x = x;
this.y = y;
}
}
class Mycomparator implements Comparator<PII>
{
@Override
public int compare(PII o1, PII o2)
{
// TODO Auto-generated method stub
if(o1.x != o2.x) return o1.x - o2.x;
return o1.y - o2.y;
}
}