蓝桥杯试题--基础练习 十六进制转十进制
程序员文章站
2022-07-15 09:26:44
...
资源限制
时间限制:1.0s
内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
long ans=0;
int dig = str.length()-1;
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
int x = 0;
switch(c){
case '0': x = 0;break;
case '1': x = 1;break;
case '2': x = 2;break;
case '3': x = 3;break;
case '4': x = 4;break;
case '5': x = 5;break;
case '6': x = 6;break;
case '7': x = 7;break;
case '8': x = 8;break;
case '9': x = 9;break;
case 'A': x = 10;break;
case 'B': x = 11;break;
case 'C': x = 12;break;
case 'D': x = 13;break;
case 'E': x = 14;break;
case 'F': x = 15;break;
}
ans = ans+x*((long)Math.pow(16, dig));
dig--;
}
System.out.println(ans);
}
}