写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
输入例子1:
0xAA
输出例子1:
170
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
System.out.println(dem(str));
}
public static int dem(String s){
int len=s.length();
int res=0;
//从第三位开始读
if(len<=2){
return 0;
}
for(int i=2;i<len;i++){
//读取这一位的数字
char c=s.charAt(i);
int k=todigital(c);
res+=(int)k*Math.pow(16,len-1-i);
}
return res;
}
public static int todigital(char c){
if(c>='0'&&c<='9'){
return (int)(c-48);
}
if(c>='A'&&c<='F'){
return (int)(c-55);
}
return 0;
}
}