BASIC-11 十六进制转十进制

资源限制

时间限制:1.0s   内存限制:512.0MB

问题描述

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

样例输入

FFFF

样例输出

65535

Code

Java源代码:

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		
		Scanner scan=new Scanner(System.in);
		String string=scan.nextLine();
		char c[]=string.toCharArray();
		long sum=0;
		int n=c.length;
		for(int i=0;i9){
				if(c[i]=='A'){
					sum+=10*Math.pow(16, n-i-1);
				}else if(c[i]=='B'){
					sum+=11*Math.pow(16, n-i-1);
				}else if(c[i]=='C'){
					sum+=12*Math.pow(16, n-i-1);
				}else if(c[i]=='D'){
					sum+=13*Math.pow(16, n-i-1);
				}else if(c[i]=='E'){
					sum+=14*Math.pow(16, n-i-1);
				}else if(c[i]=='F'){
					sum+=15*Math.pow(16, n-i-1);
				}
				
			}
			else{
				sum+=((int)c[i]-48)*Math.pow(16, n-i-1);
			}
		}
		System.out.println(sum);
	}
}

 

你可能感兴趣的:(#,基础练习)