----------------------------------------------------------------------------------------
貌似用int类型不会超出,但是.....
----------------------------------------------------------------------------------------
算法
/*问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
String st = new Scanner(System.in).nextLine();
System.out.println(Long.parseLong(st, 16));
}
}
学习补充
Integer类
static int parseInt(String s)//将字符串参数作为有符号的十进制整数进行解析
static int parseInt(String s,int radix)// 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。返回十进制整数(radix代表几进制)
示例:
parseInt("0", 10) 返回 0
parseInt("473", 10) 返回 473
parseInt("-0", 10) 返回 0
parseInt("-FF", 16) 返回 -255
parseInt("1100110", 2) 返回 102
parseInt("2147483647", 10) 返回 2147483647
parseInt("-2147483648", 10) 返回 -2147483648
parseInt("2147483648", 10) 抛出 NumberFormatException
parseInt("99", 8) 抛出 NumberFormatException
parseInt("Kona", 10) 抛出 NumberFormatException
parseInt("Kona", 27) 返回 411787
Long类
static long parseLong(String s) //将 string 参数解析为有符号十进制 long
static long parseLong(String s,int radix) //将 string 参数解析为有符号的 long
,基数由第二个参数指定 返回十进制Long