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

黑马程序员-查表发进制转换优化

2012-06-24 22:30 183 查看
---------------------- android培训、java培训、期待与您交流! ----------------------

                  进制转换在计算机中应用比较频繁,各种不同进制与十进制之间相互需要转换
/*

查表发将所有的元素临时存储起来,建立对应关系

查表法进制转换优化

*/

class TransTest 

{
public static void main(String[] args) 
{
toBin(60);
toOct(60);
toHex(60);
}
/*
十进制-->二进制
*/
public static void toBin(int num)
{
trans(num,1,1);
}
/*
十进制-->八进制
*/
public static void toOct(int num)
{
trans(num,7,3);
}
/*
十进制-->十六进制
*/
public static void toHex(int num)
{
trans(num,15,4);
}
public static void trans(int num,int base,int offest)
{
if(num==0)//如果num为0,打印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[] arr = new char[32];//创建一个32位的字符数组
int pos = arr.length;
while(num!=0)
{
int temp = num&base;/
arr[--pos] = chs[temp];查表找到索引为temp的字符
num=num>>>offest;//右移对应的位数,继续循环相与。
}
for(int x=pos;x<arr.length;x++)//遍历字符数组
{
System.out.print(arr[x]);
}
System.out.print("\n");
}

}

                 

---------------------- android培训、java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息