题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
1、去掉0x,从后往前读,一位位找到对应的数字,与16的x次方相乘并累加,使用Integer.toString(num)返回最终字符串
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String hex = in.nextLine();
hex = hex.substring(2); //去掉0x
int num = 0;
double x = 0;
for(int i = hex.length() - 1; i >= 0; i--){
char c = hex.charAt(i);
int num1 = 0;
switch (c) {
case '0':
num1 = 0;
break;
case '1':
num1 = 1;
break;
case '2':
num1 = 2;
break;
case '3':
num1 = 3;
break;
case '4':
num1 = 4;
break;
case '5':
num1 = 5;
break;
case '6':
num1 = 6;
break;
case '7':
num1 = 7;
break;
case '8':
num1 = 8;
break;
case '9':
num1 = 9;
break;
case 'A':
num1 = 10;
break;
case 'B':
num1 = 11;
break;
case 'C':
num1 = 12;
break;
case 'D':
num1 = 13;
break;
case 'E':
num1 = 14;
break;
case 'F':
num1 = 15;
break;
}
int num0 = (int)Math.pow(16, x);
x++;
num += num1 * num0;
}
System.out.println(Integer.toString(num));
}
}
查看3道真题和解析
腾讯成长空间 5981人发布