您的位置:首页 > 职场人生

黑马程序员--进制的转换程序收藏

2012-03-05 23:25 183 查看
----------------------
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]);
}

}

}


----------------------
android培训java培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: