问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
代码如下:
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws Exception
{
Scanner input = new Scanner(System.in);
String str = input.next();
long num = 0;
int t = 0;
char[] s = str.toCharArray();
for (int i = 0; i < s.length ; i++)
{
switch (s[i])
{
case '0':
t = 0;
break;
case '1':
t = 1;
break;
case '2':
t = 2;
break;
case '3':
t = 3;
break;
case '4':
t = 4;
break;
case '5':
t = 5;
break;
case '6':
t = 6;
break;
case '7':
t = 7;
break;
case '8':
t = 8;
break;
case '9':
t = 9;
break;
case 'A':
t = 10;
break;
case 'B':
t = 11;
break;
case 'C':
t = 12;
break;
case 'D':
t = 13;
break;
case 'E':
t = 14;
break;
case 'F':
t = 15;
break;
}
num += (Math.pow(16, s.length - 1 - i) * t);
}
System.out.println(num);
}
}
运行结果:
FFFF
65535