java 题目 接受一个十六进制数,输出该数的十进制表示
描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 1 \le n \le 2^{31}-1 \1≤n≤231−1
注意本题有多组输入
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入:
0xA 0xAA
输出:
10 170
方法一:
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 while(scanner.hasNext()) { 7 String s = scanner.next(); 8 System.out.println(Integer.decode(s)); 9 } 10 } 11 }
方法二:
1 import java.io.*; 2 3 public class Main{ 4 public static void main(String[] args)throws Exception{ 5 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 6 String str; 7 while((str = br.readLine()) != null){ 8 //parseLong(String, int),int指定基数,字符串中字符要符合基数的数字,这里指定为16进制,字符串取0x后面内容 9 System.out.println(Long.parseLong(str.substring(2),16)); 10 } 11 } 12 }