进制转换,写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在 1≤n≤2的31次方-1

2023-12-24 23:35:50

题目:进制转换
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 1≤n≤2的31次方-1

代码实现:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = in.nextLine();
        int sum = 0;
        char[] chararray = str.toCharArray();
        for (int i = chararray.length - 1; i > 1; i--) {
            if (chararray[i] == 'A') {
                int x = chararray.length - 1 - i;
                int num = 10;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            } else if (chararray[i] == 'B') {
                int x = chararray.length - 1 - i;
                int num = 11;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            } else if (chararray[i] == 'C') {
                int x = chararray.length - 1 - i;
                int num = 12;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            } else if (chararray[i] == 'D') {
                int x = chararray.length - 1 - i;
                int num = 13;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            } else if (chararray[i] == 'E') {
                int x = chararray.length - 1 - i;
                int num = 14;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            } else if (chararray[i] == 'F') {
                int x = chararray.length - 1 - i;
                int num = 15;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            } else {
                int x = chararray.length - 1 - i;
                int num = chararray[i]-48;
                if (x == 0) {
                    num = num * 1;
                    sum = sum + num;
                } else {
                    while (x > 0) {
                        num = num * 16;
                        x--;
                    }
                    sum = sum + num;
                }
            }
        }
        System.out.println(sum);
    }
}

文章来源:https://blog.csdn.net/JSUITDLWXL/article/details/135188702
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。