(基础十二)使用数组索引进行进制转换

来源:互联网 发布:c语言cos函数怎么表示 编辑:程序博客网 时间:2024/06/07 06:03

查表法:将所有的元素临时存储起来。建立对应关系。每一次&15后的值作为索引去查建立好的表。就可以找对应的元素。这样比 -10+‘a’简单的多。
这个表怎么建立呢?可以通过数据的形式来定义。
所以可以使用数组来完成存储。

public class decimalToBinHex_2 {    public static void main(String[] args) {//      toBin(12);        toHex(60);    }    public static void toHex(int num){        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 - 1;        while(num != 0){            int tmp = num & 15;//得到索引值            arr[--pos] = chs[tmp];//根据得到的索引值去查表            num = num >>> 4;        }        for(int i = pos; i < arr.length; i++){            System.out.print(arr[i]);        }    }    public static void toBin(int num){        char[] chs = {'0','1'};        char[] arr = new char[32];        int pos = arr.length;        while(num != 0){            int tmp = num & 1;            arr[--pos] = chs[tmp];            num = num >>> 1;        }        for(int i = pos; i < arr.length; i++){            System.out.print(arr[i]);        }    }}
0 0