查表法进制转换

 1 public class Day043
 2 {
 3     // 查表法进制转换
 4     public static void main(String[] args)
 5     {
 6         System.out.print(getChange(16, 8));
 7     }
 8     // 定义数组
 9     static char[] arr = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8',
10             '9', 'A', 'B', 'C', 'D', 'E', 'F'};
11     // X,需要转化的数据;Y,转化成的进制,包括2进制,8进制,16进制;
12     static String getChange(int x, int y)
13     {
14         StringBuffer sb = new StringBuffer();
15         int temp;
16         int i = 0;
17         int j = y;
18         if (x == 0)
19             return sb.append('0').toString();
20         while (j / 2 != 0)
21         {
22             i++;
23             j = j / 2;
24         }
25         while (x != 0)
26         {
27             temp = x & (y - 1);
28             sb.append(arr[temp]);
29             x = x >>> i;
30         }
31         return sb.reverse().toString();
32     }
33 }

 

 

posted @ 2014-01-03 09:49  一路向北中  阅读(292)  评论(0)    收藏  举报