天天看點

十進制轉二進制八進制16進制

//主函數,同樣和C中的主函數類似
    public static void main(String[] args) {
        //建立數組
        // 類似于C代碼  String temp[100];
        String temp[] = new String[];
        // 類似于C代碼  String array[100];
        String array[] = new String[];
        //  類似于C代碼  String hexChar[] = { };
        String[] hexChar = {"A", "B", "C", "D", "E", "F"};
        //輸入 類似與C代碼
        Scanner scanner = new Scanner(System.in);
        //待轉換的數 類似與C代碼的輸入函數  scanf("%d",&num)
        int num = scanner.nextInt();
        //待轉換的進制 類似與C代碼的輸入函數  scanf("%d",&radix)
        int radix = scanner.nextInt();
        //記錄數組長度
        int length = ;
        do {
            int r = num % radix;
            //10 -> 16進制的邏輯處理
            if (radix == ) {
                if (r >= ) {
                    // r%10 求餘比對十六進制中的字元(10-A 11-B ....)
                    temp[length++] = hexChar[(r % )];
                } else {
                    // +"" 為隐式類型轉換,将int轉換成String類型
                    temp[length++] = r + "";
                }
            //10->2 或者 10->8進制的邏輯處理
            } else {
                temp[length++] = r + "";
            }
            //求商
            num /= radix;
        } while (num > );
        int index = ;
        //數組倒排
        for (int t = length - ; t >= ; t--) {
            array[index++] = temp[t];
        }
        //列印轉換的結果
        for (int i = ; i < length; i++) {
            //System.out.print 類似于 print("%s",array[i])函數
            System.out.print(array[i]);

        }

    }