华为机试:进制转换

题目描述

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

输入描述:

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

输出描述:

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

示例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 }

 

posted @ 2017-09-21 19:13  zdtiio  阅读(382)  评论(0编辑  收藏  举报