import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); BigInteger bi = null; String enter = null; enter = input.next(); bi = new BigInteger(enter, 16); String show = bi.toString(10); System.out.println(show); } }
疑难解答:1.BigInteger是存储非常大的数据类型,题目中已经给出了最长为8位的字符串,而Integer的数据类型最多也只能存储8位,我们防止数据溢出一般采用BigInteger类型。
2.给bi和enter赋值null与不赋值是有区别的,给bi和enter赋值null的目的是完成了初始化。(总之,一个局部对象使用之前肯定要先赋值,但不管你在什么时候赋值。所以,无论是成员变量还是局部变量,声明的时候不赋值只声明当然是可以的。)
3.bi = new BigInteger(enter,16);这行代码的含义是将enter这一个字符串转化为16进制的数,如果不带进制就是默认10进制。
4.在这里toString(10);的含义就是把输出的数转换为十进制,当然还可以是其他进制。至于toSring的其他用法以后我会专门写一个随笔,先介绍在这里的用法吧。
原文:https://www.cnblogs.com/chenxi1944362410/p/12283768.html