首页 > 编程语言 > 详细

【JAVA蓝桥杯】基础练习2 十六进制转十进制

时间:2020-02-08 17:52:43      阅读:94      评论:0      收藏:0      [点我收藏+]
资源限制
时间限制:1.0s   内存限制:512.0MB
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
JAVA答案如下代码
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的其他用法以后我会专门写一个随笔,先介绍在这里的用法吧。

【JAVA蓝桥杯】基础练习2 十六进制转十进制

原文:https://www.cnblogs.com/chenxi1944362410/p/12283768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!