进制转换(代码填空)
进制转换是我们大家经常遇到的问题,下面代码可以完成任意两种进制之间的转换。
数字范围在 long long
内的正数,转换进制是的范围是 2−36 进制。其中 A 表示 10 ,Z 表示 35。
代码框中的代码是一种实现,请分析并填写缺失的代码。
样例输入
36 10 Z
样例输出
35
import java.util.*; import java.math.*; public class Main { public static final int N = 10010; public static char[] olddata = new char[N]; public static char[] newdata = new char[N]; public static long olds = 0; public static long news = 0; public static void swit() { long n = 0, flag = 1; for (int i = 0; i < olddata.length; ++i) { if (olddata[i] == '-') { flag = -1; } else if(olddata[i] > '9') { n = n * olds + olddata[i] - 55; } else { n = n * olds + olddata[i] - '0'; } } n *= flag; String s = ""; long tmp = 0; while(n != 0) { tmp = n % news; n /= news; if (tmp >= 10) { s = String.valueOf((char)(tmp + 55)) + s; } else { /*在这里填写必要的代码*/ s = String.valueOf(tmp) + s; } } System.out.println(s); } public static void main(String[] args) { Scanner cin = new Scanner(System.in); olds = cin.nextLong(); news = cin.nextLong(); olddata = cin.next().toCharArray(); swit(); } }