黑马程序员技术交流社区
标题:
【记录】代码练习-查表法进制转换
[打印本页]
作者:
Kevin.Kang
时间:
2015-6-3 11:59
标题:
【记录】代码练习-查表法进制转换
public class ArrayDemo3
{
public static void main (String args [])
{
toHex(60);
toOctal(60);
toBinary(60);
}
//十进制转换十六进制
public static void toHex(int num)
{
trans(num, 15, 4);
}
//十进制转换八进制
public static void toOctal(int num)
{
trans(num,7,3);
}
//十进制转换二进制
public static void toBinary(int num)
{
trans(num, 1, 1);
}
public static void trans(int num, int a, int b)
{
if (num == 0)
{
System.out.print("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];
//定义数组的角标变量。
int pos = arr.length;
while (num != 0)
{
int temp = num & a; //转换不同的进制,与上不同的a。
arr[--pos] = chs[temp];//从定义的表里面查找到的元素倒着存储到定义过的数组中去。
num = num >>> b; //转换不同的进制,右移不同位置。
}
for (int x=pos; x<arr.length; x++)
{
System.out.print(arr[x]);//把存储到表中的元素,按照顺序打印出来。
}
System.out.println();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2