import java.util.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data=sc.next();
// System.out.println();
solution(data);
}
//十六进制转换十进制 int
public static void solution(String data) {
int len=data.length();
Double res=0.0;
//得到科学计数法
for (int i = 0; i < data.length(); i++) {
res+=changeChar(data.charAt(i))*Math.pow(16, len-i-1);
}
System.out.println(science(res.toString()));
}
//科学计数法提取数字
public static String science(String res) {
StringBuffer sb=new StringBuffer(res);
int index=0;
//第一种情况就是有E的科学技术法
if(res.charAt(res.length()-2)=='E') {
index=res.charAt(res.length()-1)-'0';//提取后面的数字
sb=new StringBuffer(sb.substring(0,res.length()-2));//切除后面的Ex
sb.replace(1, 2, "");//去除小数点
if((sb.length()-1)==index) {
return sb.toString();
}else {
for (int i = 0; i <index-sb.length()+1; i++) {
sb.append("0");
}
return sb.toString();
}
}
//正常计数的情况
else {
return res.substring(0,res.length()-2);
}
}
//取数字
public static int changeChar(char c) {
int i=0;
switch(c) {
case'A':
i=10;
break;
case'B':
i=11;
break;
case'C':
i=12;
break;
case'D':
i=13;
break;
case'E':
i=14;
break;
case'F':
i=15;
break;
default:
i=c-'0';
break;
}
return i;
}
}
蓝桥杯-十六进制转十进制
最新推荐文章于 2023-03-08 12:48:59 发布