十进制转换为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换行打印,之前打印出来的排列顺序是相反的。这样子打印计算结果应该是,从下往上读。