DropsBrowse Pastes
Login with GitHub

进制转换 Java 版

November 30th, 2021Views: 217(0 unique)Java
package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        String srcNum;
        int destNum = 0;
        Scanner scan = new Scanner(System.in);

        System.out.print("请输入源进制和目标进制,中间用空格隔开:");
        int srcBase = scan.nextInt();
        int destBase = scan.nextInt();

        if (!((srcBase == 8 || srcBase == 10 || srcBase == 16) && (destBase == 8 || destBase == 10 || destBase == 16))) {
            System.out.println("这个进制转换器只支持八、十、十六进制的相互转换。");
        } else {
            switch (srcBase) {
                case 8 -> {
                    System.out.print("请输入八进制数:");
                    srcNum = scan.next();
                    destNum = Integer.valueOf(srcNum, 8);
                }
                case 10 -> {
                    System.out.print("请输入十进制数:");
                    srcNum = scan.next();
                    destNum = Integer.valueOf(srcNum, 10);
                }
                case 16 -> {
                    System.out.print("请输入十六进制数:");
                    srcNum = scan.next();
                    destNum = Integer.valueOf(srcNum, 16);
                }
            }
        }

        switch (destBase) {
            case 8 -> System.out.println("这个数的八进制是 " + Integer.toOctalString(destNum));
            case 10 -> System.out.println("这个数的十进制是 " + destNum);
            case 16 -> System.out.println("这个数的十六进制是 " + Integer.toHexString(destNum));
        }
    }
}