/*
查表法完成十进制转换十六进制。
*/
class ArrayTest6
{
public static void main(String[] args)
{
toHex(60);
toBin(-6);
}
public static void toHex(int num)
{
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8];
int pos=arr.length;//下面--pos是先减再给予赋值,所以这里要给pos赋予arr.length。
while(num!=0)
{
int temp=num&15;
arr[--pos]=chs[temp];//这里--pos就在给数组存储数据时完成了pos=arr.length-1的操作,从而使打印输出的时候可以简化代码。
num=num>>>4;
}
System.out.println("pos="+pos);
for (int x=pos ; x<arr.length ; x++ )//因为--pos所以这里int x=pos+1就可以简化成为int x=pos。
{
System.out.print(arr[x]+",");
}
System.out.println();
/*
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8];
int pos=arr.length-1;
while(num!=0)
{
int temp=num&15;
arr[pos--]=chs[temp];
num=num>>>4;
}
System.out.println("pos="+pos);
for (int x=pos+1 ; x<arr.length ; x++ )
{
System.out.print(arr[x]+",");
}
*/
}
public static void toBin(int num)
{
char[] chs={'0','1'};
char[] arr=new char[32];
int pos=arr.length;//下面--pos是先减再给予赋值,所以这里要给pos赋予arr.length。
while(num!=0)
{
int temp=num&1;
arr[--pos]=chs[temp];//这里--pos就在给数组存储数据时完成了pos=arr.length-1的操作,从而使打印输出的时候可以简化代码。
num=num>>>1;
}
System.out.println("pos="+pos);
for (int x=pos ; x<arr.length ; x++ )//因为--pos所以这里int x=pos+1就可以简化成为int x=pos。
{
System.out.print(arr[x]);
}
}
}