/*进制转化*/
//建表法
import java.util.*;
class ArrayTest{
public static void main(String[] args) {
}
//十进制-->二进制
public void toBin(int number){
trans(number,1,1);
}
//十进制-->八进制
public void toOx(int number){
trans(number,7,3);
}
//十进制-->十六进制
public void toHex(int number){
trans(number,15,4);
}
//转化
public void trans(int number,int base,int offset){
if(number==0){
System.out.println(0);
return;
}
//建表
char [] chs = {'0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F',};
char[] array = new char[32];
int pos = array.length;
while(number!=0){
int temp = number&base;
array[--pos] = chs[temp];
number = number >>> offset;
}
for(int i = pos; i<array.length; i++){
System.out.print(array[i]);
}
}
}
/*普通转化:
10---->16进制 基数15 右移4位
10---->8进制 基数7 右移3位
10---->2进制 基数1 右移1位
*/
public void trans(int number){
StringBuffer sb = new StringBuffer();
while(number!=0){
int temp = number&15;
if(temp>=10){
sb.append(temp-10+'A');
}
number = number >>> 4;
}
System.out.print(sb.reverse());
}
进制转化优化实现
最新推荐文章于 2024-08-27 04:25:06 发布