栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

HJ5-进制转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HJ5-进制转换

HJ5 进制转换

描述

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

数据范围:保证结果在 1≤n≤2^31−1

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。不同组的测试用例用n隔开。

示例1

输入:

0xAA

输出:

170
解:

思路:十进制字符串以0x/0X开头,从第2位开始。

//方法一,直接API
import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            String s = sc.nextLine();
            //Integer.parseInt()把整形对象Integer转换成基本数据类型int(整数)
            System.out.println(Integer.parseInt(s.substring(2, s.length()), 16));
        }
    }
}
//方法二,进制转换
import java.util.*;
public class Main {
  private final static int BASE = 16;
  private static Map map = new HashMap()
  {{
      put('0', 0);
      put('1', 1);
      put('2', 2);
      put('3', 3);
      put('4', 4);
      put('5', 5);
      put('6', 6);
      put('7', 7);
      put('8', 8);
      put('9', 9);
      put('A', 10);
      put('B', 11);
      put('C', 12);
      put('D', 13);
      put('E', 14);
      put('F', 15);
      put('a', 10);
      put('b', 11);
      put('c', 12);
      put('d', 13);
      put('e', 14);
      put('f', 15);
  }};
  public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      while (in.hasNext()) {
          String number = in.next();
          int res = getDecimal(number.substring(2));
          System.out.println(res);
      }
  }
    
  public static int getDecimal(String number) {
      int res = 0;
      for (char ch : number.toCharArray()) {
          res = res * BASE + map.get(ch);
      }
      return res;
  }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号