---------------------- android培训、java培训、期待与您交流! ----------------------
今天看了看进制的转换的问题,深深的被毕老师的抽象出来的转换方法吸引啊,于是我将它贴出来,方便以后复习啊,呵呵。。。
public class jinzizhuanhuan {
/**进制之间的转换
* @param args
*/
public static void main(String[] args) {
int num = 60;
trans(num,15,4);
}
/**
* 进制抽象的函数
* @param num 要转换的数
* @param base 要相与的书数 2^offset-1
* @param offset 要进行转换的进制 如2,8,16
*/
public static void trans(int num,int base,int offset)
{
if(num==0)
{
System.out.println(num);
return ;
}
char[] table = new char[]{'0','1','2','3','4','5'
,'6','7','8','9','A','B','C','D','E','F'};
char[] arr = new char[16];
int pos = arr.length;
while(num!=0)
{
int tem = num&base;//取得num的二进制的最后的offset位;
arr[--pos] = table[tem];//将取得数进行查表存储到数组中,是到这存储的。
num = num>>>offset;//无符号右移offset位,为下一次取数作准备;
}
//打印转换完的数
for(int x=pos; x<arr.length;x++)
{
System.out.print(arr[x]);
}
}
}