import java.util.Scanner;
import java.math.*;
public class Main { public enum HexDigit {
ZERO('0', 0),
ONE('1', 1),
TWO('2', 2),
THREE('3', 3),
FOUR('4', 4),
FIVE('5', 5),
SIX('6', 6),
SEVEN('7', 7),
EIGHT('8', 8),
NINE('9', 9),
A('A', 10),
B('B', 11),
C('C', 12),
D('D', 13),
E('E', 14),
F('F', 15);
private final char hexChar;
private final int decimalValue;
HexDigit(char hexChar, int decimalValue) {
this.hexChar = hexChar;
this.decimalValue = decimalValue;
}
public char getHexChar() {
return hexChar;
}
public int getDecimalValue() {
return decimalValue;
}
// 根据16进制字符查找对应的枚举值
public static HexDigit fromChar(char c) {
c = Character.toUpperCase(c);
for (HexDigit digit : values()) {
if (digit.hexChar == c) {
return digit;
}
}
throw new IllegalArgumentException("Invalid hex character: " + c);
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
long sum=0;
for(int i=str.length()-1;i>1;i--){
sum+= HexDigit.fromChar(str.charAt(i)).getDecimalValue()*Math.pow(16,str.length()-1-i);
}
System.out.print(sum);
}
}
直接枚举类型写死了,懒得判断



京公网安备 11010502036488号