BASIC-11 十六进制转十进制

BASIC-11 十六进制转十进制

题目

问题描述

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

样例输入

FFFF

样例输出

65535

题解

import java.util.Scanner;
import java.util.HashMap;

public class BASIC_11 {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        sc.close();
        char[] arr = str.toCharArray();
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        map.put('0', 0);
        map.put('1', 1);
        map.put('2', 2);
        map.put('3', 3);
        map.put('4', 4);
        map.put('5', 5);
        map.put('6', 6);
        map.put('7', 7);
        map.put('8', 8);
        map.put('9', 9);
        map.put('A', 10);
        map.put('B', 11);
        map.put('C', 12);
        map.put('D', 13);
        map.put('E', 14);
        map.put('F', 15);
        long count = 0;
        int o;
        for (int i = 0; i < arr.length; i++) {
            o = arr.length - i - 1;
            count += map.get(arr[i]) * Math.pow(16, o);
        }
        System.out.println(count);
    }
}
posted @ 2022-03-18 23:07  morning-start  阅读(47)  评论(0编辑  收藏  举报