题解 | #进制转换#
进制转换
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)); } }