本帖最后由 wata 于 2014-12-20 11:48 编辑
- package day04;
- /*
- * 利用数组+查表法將:
- *
- * 十进制-->二进制
- * 十进制-->八进制
- * 十进制-->十六进制
- * */
- public class toBinToHex2 {
- public static void main(String[] args){
- toBin(60);
- System.out.println();
-
- toBa(60);
- System.out.println();
-
- toHex(60);
- System.out.println();
- }
-
- //进制转换器
- //用法:例如转换八进制,只需把base和offset值分别置为7和3。
- public static void trans(int num, int base, int offset){
- if(num==0){
- System.out.print(0);
- return;
- }
- char[] chs = {'0','1','2','3'
- ,'4','5','6','7'
- ,'8','9','A','B'
- ,'C','D','E','F'};
- char[] arr = new char[32];
- int pos = arr.length;
-
- while(num!=0){
- int temp = num & base;
- arr[--pos] = chs[temp];
- num = num >>> offset;
- }
-
- for(int x=pos; x<arr.length; x++){
- System.out.print(arr[x]);
- }
-
- return;
- }
-
- //十进制-->二进制
- public static void toBin(int num){
- trans(num,1,1);
- }
-
- //十进制-->八进制
- public static void toBa(int num){
- trans(num,7,3);
- }
-
- //十进制-->十六进制
- public static void toHex(int num){
- trans(num,15,4);
- }
- }
复制代码
我觉得这种方法最精简了且最实用了。 |