查表法:将所有的元素临时存储起来。建立对应关系。每一次&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]);
}
}
}