java 题目 接受一个十六进制数,输出该数的十进制表示

描述

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
 
数据范围:保证结果在 1 \le n \le 2^{31}-1 \1n2311 
 
注意本题有多组输入

输入描述:

输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子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 }

 

posted @ 2022-02-13 19:13  海漠  阅读(628)  评论(0编辑  收藏  举报