华为机试:进制转换
题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
Java:
1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 5 public class Main { 6 7 public static void main(String[] args) { 8 Scanner sc=new Scanner(System.in); 9 while(sc.hasNext()){ 10 int count=0; 11 String s = sc.nextLine(); 12 for(int i = s.length()-1; i > 1; i--){ 13 int temp_num; 14 switch (s.charAt(i)) { 15 case 'A': 16 temp_num=10; 17 break; 18 case 'B': 19 temp_num=11; 20 break; 21 case 'C': 22 temp_num=12; 23 break; 24 case 'D': 25 temp_num=13; 26 break; 27 case 'E': 28 temp_num=14; 29 break; 30 case 'F': 31 temp_num=15; 32 break; 33 34 default: 35 temp_num = Integer.parseInt(s.substring(i, i+1)); 36 } 37 count+=temp_num*Math.pow(16, s.length()-i-1); 38 } 39 System.out.println(count); 40 } 41 sc.close(); 42 } 43 44 }