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]);
}
}
}
//学习一下别人的也是一种收获,这个程序是毕老师的,很牛的,呵呵,我超喜欢这个类的思想。。。 |