----------------------------------------------------------------------------------------
貌似用int类型不会超出,但是.....
----------------------------------------------------------------------------------------
算法
1 /*问题描述 2 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 3 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 4 样例输入 5 FFFF 6 样例输出 7 65535*/ 8 import java.util.*; 9 public class Main { 10 public static void main(String[] args) { 11 String st = new Scanner(System.in).nextLine(); 12 System.out.println(Long.parseLong(st, 16)); 13 } 14 }
学习补充
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