十六进制转十进制_蓝桥杯

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

import java.util.Scanner;

public class HexadecimaToDecimal1{
    
    public static long hTd(String s){
        long res = 0; //此处要用长整型,因为8位十六进制数转换成的十进制数已经超过int的最大值
        int len = s.length();
//        System.out.println(len);
        for(int i=0; i<len; i++){
            if('0'<=s.charAt(i) && s.charAt(i)<='9')
                res += (s.charAt(i)-'0')*Math.pow(16, len-i-1);
            else
                res += (s.charAt(i)-'A'+10)*Math.pow(16, len-i-1);
//                System.out.println((s.charAt(i)-'A'+10)*Math.pow(16, len-i-1));
        }
        return res;
    }
    
    public static void main(String argv[]){
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        scanner.close();
        System.out.println(hTd(str));
    }
}

另外,Java拥有非常强大的库!

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

import java.util.Scanner;

public class HexadecimaToDecimal {
    
    public static void main(String argv[]){
        Scanner scanner = new Scanner(System.in);
        String hex_num = scanner.nextLine();  
        long dec_num = Long.parseLong(hex_num, 16); //第二个参数是10就转换成十进制,是16就转换成十六进制
        scanner.close();  
        System.out.println(dec_num);
    }
}
原文地址:https://www.cnblogs.com/LieYanAnYing/p/12180649.html