黑马程序员技术交流社区
标题:
查表法实现进制转换
[打印本页]
作者:
PDH
时间:
2015-9-16 13:00
标题:
查表法实现进制转换
本帖最后由 PDH 于 2015-9-16 13:02 编辑
public class JinzhiSwap {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(toBin(6));
System.out.println(toHex(60));
}
// 查表法
// 十进制>>二进制
public static String toBin(int num){
return trans(num,1,1);
}
// 十进制>>十六进制
public static String toHex(int num){
return trans(num,15,4);
}
// 十进制>>八进制
public static String toOct(int num){
return trans(num,7,3);
}
private static String trans(int num,int base,int offset){
if(num==0)
return "0";
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; //定义指针
int temp; //临时存储
while(num!=0){
temp=num & base;
arr[--pos]=chs[temp];
num=num >>> offset;
}
return String.valueOf(arr,pos,arr.length-pos);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2