1. 程式人生 > >十進位制轉二進位制八進位制16進位制

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


    //主函式,同樣和C中的主函式類似
    public static void main(String[] args) {
        //建立陣列
        // 類似於C程式碼  String temp[100];
        String temp[] = new String[100];
        // 類似於C程式碼  String array[100];
        String array[] = new String[100];
        //  類似於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 = 0; do { int r = num % radix; //10 -> 16進位制的邏輯處理 if (radix == 16) { if (r >= 10) { // r%10 求餘匹配十六進位制中的字元(10-A 11-B ....) temp[length++] = hexChar[(r % 10)]; } else { // +"" 為隱式型別轉換,將int轉換成String型別
temp[length++] = r + ""; } //10->2 或者 10->8進位制的邏輯處理 } else { temp[length++] = r + ""; } //求商 num /= radix; } while (num > 0); int index = 0; //陣列倒排 for (int t = length - 1; t >= 0; t--) { array[index++] = temp[t]; } //列印轉換的結果 for (int i = 0; i < length; i++) { //System.out.print 類似於 print("%s",array[i])函式 System.out.print(array[i]); } }