问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
解题思路:
将十进制字符串分别解析,巧用ascii码表解决。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String num = sc.next();
long result = 0;
for (int i = 0; i < num.length(); i++) {
int temp = num.charAt(i) > 57 ? num.charAt(i) - '0' - 7 : num.charAt(i) - '0';
result += Math.pow(16, num.length() - 1 - i) * (temp);
}
System.out.println(result);
sc.close();
}
}