蓝桥杯 基础练习 十六进制转十进制

来源:互联网 发布:淘宝商品管控 编辑:程序博客网 时间:2024/04/29 16:14

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

import java.util.Scanner;public class Main {    final static char letter[]={'A','B','C','D','E','F'};    final static char lower[]={'a','b','c','d','e','f'};    public static void main(String[] args) {        Scanner in=new Scanner(System.in);        String n=in.nextLine();        long DecNum=0;        char num[]=n.toCharArray();        long N[]=new long[num.length];        for(int i=0;i<num.length;i++){            if(!Character.isDigit(num[i])){                for(int j=0;j<letter.length;j++){                    if(num[i]==letter[j]||num[i]==lower[j]){                        N[i]=Integer.valueOf(10+j);                    }                }            }            else{                Character ch = num[i];// char是基本数据类型,Character是其包装类型                N[i] = Long.parseLong(ch.toString());            }        }        for(int i=0;i<N.length-1;i++){            for(int j=N.length-i-1;j>0;j--){                N[i]*=16;            }            DecNum+=N[i];                   }        System.out.println(DecNum+N[N.length-1]);            }}
0 0
原创粉丝点击