【基础练习】 十六进制转十进制

问题描述

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

样例输入

FFFF

样例输出

65535

import java.util.*;


public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String str=in.nextLine();
		long sum=0;
		int n=str.length();
		for(int i=0;i<n;i++) {
			if(str.charAt(i)>='A') {
				switch (str.charAt(i)) {
				case 'A':sum+=10*Math.pow(16, n-i-1);break;
				case 'B':sum+=11*Math.pow(16, n-i-1);break;
				case 'C':sum+=12*Math.pow(16, n-i-1);break;
				case 'D':sum+=13*Math.pow(16, n-i-1);break;
				case 'E':sum+=14*Math.pow(16, n-i-1);break;
				case 'F':sum+=15*Math.pow(16, n-i-1);break;			
				default:break;
				}		
			}
			else {
				sum+=Integer.parseInt(String.valueOf(str.charAt(i)))*Math.pow(16, n-i-1);
			}
		}
		System.out.println(sum);	
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_38054219/article/details/86770157
今日推荐