问题及代码:
/*
*问题描述
从键盘输入一个不超过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 hex_num = in.nextLine();
long dec_num = Long.parseLong(hex_num, 16);
System.out.println(dec_num);
}
}
知识点总结:
1.Long.parseLong( , );
对字符串参数的解析就是按照这个进制标准进行转化成10进制的数值。
比如 :
System.out.println(Long.parseLong("473", 16));
System.out.println(Long.parseLong("473",10));
输出为:
1139
473
说明16进制的473转换成十进制就是1139,十进制的473转换成十进制就是473
2.之所以使用long 是因为转换成的十进制数超出了int的范围。