首页 > 其他 > 详细

十六进制转十进制

时间:2020-01-11 19:09:43      阅读:64      评论:0      收藏:0      [点我收藏+]
问题描述
  从键盘输入一个不超过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

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