【java蓝桥杯基础试题】十六进制转十进制

简介: 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

 

资源限制

时间限制:1.0s   内存限制:512.0MB


问题描述

  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。


样例输入

FFFF


样例输出

65535

分析:看题目是要求我们进行进制转换的,我们可以想到一些java的内置对象进行快速处理,大家首先想到的是:

Integer valueOf(String s, int radix): 返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值

使用这个来进行转换Integer valueOf("十六进制字符串",16),来进行转换成十进制。但是题目要求的不超过:FFFFFFFF的十六进制数,转换为十进制为:4294967295

而Integer的最大值为2147483647,所以我们不能使用Integer valueOf(String s, int radix),而是去使用Long.valueOf(String s, int radix).toString();这样我们就能正确的按照题目要求完成代码了。如果规定输入的十六进制数较多的话,就不能使用这样的方法了。

下面看代码:

import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
  Scanner sc=new Scanner(System.in);
//接收输入的内容
  String s=sc.next();
  //转换为十进制
  System.out.println(Long.valueOf(s, 16).toString());
  }
}

image.gif

目录
相关文章
|
3月前
|
存储 Oracle Java
01 Java概述基础与计算机基础(DOS+进制+原码反码补码)
01 Java概述基础与计算机基础(DOS+进制+原码反码补码)
42 17
|
5月前
|
Java
2016届蓝桥杯大赛软件类国赛Java大学B组 愤怒小鸟 数学模拟
2016届蓝桥杯大赛软件类国赛Java大学B组 愤怒小鸟 数学模拟
47 4
|
5月前
|
Java
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
41 3
|
5月前
|
Java
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
48 2
|
5月前
|
Java
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
36 1
|
4月前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
50 0
|
4月前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
105 0
|
5月前
|
算法 Java
Java将16进制的字符串转换为10进制数的方法
【6月更文挑战第27天】Java将16进制的字符串转换为10进制数的方法
1597 0
|
5月前
|
Java
java实现字符串与十六进制字符串互转
java实现字符串与十六进制字符串互转
|
5月前
|
存储 前端开发 算法
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
28 0