题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String a = in.next(); int num=0; for(int i=2;i<a.length();i++)//十六进制前面2位用‘0x’标示,不参与数值运算,所以从i=2开始 { if(a.charAt(i)>='A' && a.charAt(i)<='F')//char 类型可以做算数运算,用单引号括起来 { num=num+(a.charAt(i)-'A'+10)*(int)Math.pow(16,a.length()-i-1);//16转10的计算公式 } else if(a.charAt(i)>='a' && a.charAt(i)<='f') { num=num+(a.charAt(i)-'a'+10)*(int)Math.pow(16,a.length()-i-1); }else { num=num+(a.charAt(i)-'0')*(int)Math.pow(16,a.length()-i-1); } } System.out.println(num); } } }