牛客网——华为机试(题5:进制转换)(Java)

题目描述:

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1:

输入:

0xA

输出:

10

 代码:

import java.util.Scanner;
public class Main {
	public static void main (String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			String s = in.next();
			int sum = 0;
			for(int k = 2;k<s.length();k++) {
				if((int)(s.charAt(k))>=48&&(int)(s.charAt(k))<=57) {
					sum+=((int)s.charAt(k)-48)*Math.pow(16, (double)(s.length()-k-1));
				}
				else {
					int n = (int)s.charAt(k)-55;
					sum+=n*Math.pow(16, (double)(s.length()-k-1));
				}
			}
			System.out.println(sum);
		}
		in.close();
	}
}
原文地址:https://www.cnblogs.com/cg-bestwishes/p/10681172.html