经典算法题-十六进制转化十进制


使用Java写出一个程序:接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )

 

import java.util.Scanner;

public class number {
    private static final String A = "A";
    private static final String B = "B";
    private static final String C = "C";
    private static final String D = "D";
    private static final String E = "E";
    private static final String F = "F";

    public static int change(String string) {
        int[] data = new int[string.length() - 2];
        int result = 0;
        for (int i = 0; i < string.length() - 2; i++) {
            String sub = string.substring(i + 2, i + 3);
            switch (sub) {
                case A:
                    data[i] = 10;
                    break;
                case B:
                    data[i] = 11;
                    break;
                case C:
                    data[i] = 12;
                    break;
                case D:
                    data[i] = 13;
                    break;
                case E:
                    data[i] = 14;
                    break;
                case F:
                    data[i] = 15;
                    break;
                default:
                    data[i] = Integer.parseInt(sub);
            }
            result += data[i] * Math.pow(16, string.length() - 2 - i - 1);

        }
       return result;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String string = scanner.nextLine();
            int result = change(string);
            System.out.println(result);
        }
    }
}

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM