BASIC-11 十六进制转十进制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.next();
long sum=0;
for(int i=0;i<a.length();i++)
{
long c=0;
if(a.charAt(i)<'A')
{
c=Integer.parseInt(String.valueOf(a.charAt(i)));
}
else
{
c=(int)a.charAt(i)-55;
}
if(i!=a.length()-1)
{
c=c*16;
for(int j=a.length()-2-i;j>0;j--)
{
c*=16;
}
}
sum+=c;
}
System.out.println(sum);
}}