十進位轉換為K進位 Java 程式碼
最近在讀《電腦科學導論——跨學科方法》(機械工業出版社),習題索引:1.3.21:
編寫一個新程式Kary,輸入兩個命令行參數i和k,並將i轉換為基數k的數值表示。假設i是java中的long數據類型,k是2到16之間的整數。對於大於10的基,使用A到F來表示第11位到第16位的數字。
下面是我自己寫的程式碼,經過測試可以運行。限於自己水平有限,不當之處,望多多指正。
1 package test; 2 3 public class Kary { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 long i = 23; 8 int k = 12; 9 long t;//參數 t 10 String s = " "; 11 for( ;i>0; i /= k) // i/= k 是在for下面的loop執行完後,再執行的。 12 { 13 t = i%k; 14 if(t >= 10) 15 { 16 //大括弧明確 if 的邊界 17 if(t<11) System.out.print("A"+s); 18 if(11<=t&&t<12)System.out.println("B"+s); 19 if(12<=t&&t<13)System.out.println("C"+s); 20 if(13<=t&&t<14)System.out.println("D"+s); 21 if(14<=t&&t<15)System.out.println("E"+s); 22 if(15<=t&&t<16)System.out.println("F"+s); 23 } 24 else 25 { 26 System.out.println(t); 27 } 28 29 30 31 } 32 33 34 35 } 36 37 }
第一次修改 :
將每一個列印變成println換行列印,之前列印出來的排列順序是相反的。這樣子列印計算結果應該是,從下往上讀。


