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