1. 程式人生 > >Java 實現 十進位制轉二進位制,十進位制轉十六進位制

Java 實現 十進位制轉二進位制,十進位制轉十六進位制


/**
     * 十轉二
     * @param a
     * @return String 型的二進位制
     */
    public static String ten_two(int a){
        int length = 1;
        int b = a;
        while(true){
            int x = b % 2;
            b = b / 2;
            if(b < 2){
                length++;
                break;
            }
            length ++;
        }
        int[] arr = new int[length];         // 獲取陣列的動態長度

        int item = -1;
        while(true){
            int x = a % 2;
            if(a < 2){
                x = a;
                item++;
                arr[item] = x;
                break;
            }else {
                item ++;
                arr[item] = x;
            }
            a = a / 2;
        }
        String str = "";
        int time = item;
        for(int i = 0; i <= item; i++){
            String st = String.valueOf(arr[time]);
            str = str + st;
            time --;
        }
        return str;
    }
    /**
     * 十轉十六
     * @param a
     * @return 返回String 的十六進位制
     */
    public static String ten_sixteen(int a){
        int length = 1;
        int b = a;
        while(true){
            int x = b % 16;
            b = b / 16;
            if(b < 16){
                length++;
                break;
            }
            length ++;
        }
        String[] arr = new String[length];
        int item = -1;
        while(true){
            int x = a % 16;
            if(a < 16){
                x = a;
                item++;
                arr[item] = String.valueOf(x);
                break;
            }else {
                item ++;
                arr[item] = String.valueOf(x);
            }
            a = a / 16;
        }
        String str = "";
        int time = item;
        for(int i = 0; i <= item; i++){
            if(arr[time].equals("10")){
                arr[time] = "a";
            }else if(arr[time].equals("11")){
                arr[time] = "b";
            }else if(arr[time].equals("12")){
                arr[time] = "c";
            }else if(arr[time].equals("13")){
                arr[time] = "d";
            }else if(arr[time].equals("14")){
                arr[time] = "e";
            }else if(arr[time].equals("15")){
                arr[time] = "f";
            }
            str = str + arr[time];
            time --;
        }
        return str;
    }

System.out.println(ten_two(12345));

System.out.println(ten_sixteen(987654));