一个关于10进制数转换成16进制的实现.代码中有很多值的深入分析的地方,比如【查表法】的应用,位运算的应用,数组的应用,输出目标顺序的数组即顺序逆序。
还有就是关于循环的的选择什么时候用for循环什么时候用while循环。积累吧…… 锤炼·精技术_JeremyDc
class TentoHex
{
public static void main(String[] args)
{
toHex(63);//3F
}
public static void toHex(int num)
{
if(num == 0)
{
System.out.println("0");
return ; //return要写出来,当num为0时,下面就不要执行了,自然也就不要内存中开辟资源了。
}
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;
while(num != 0)
{
int temp = num & 15;
arr[--pos] = chs[temp];
num = num >>> 4;
}
System.out.println("pos = "+ pos);
for(int i=pos;i
完成了10→16进制的转换,自然调整下函数可以实现10→2,10→8,10→16的进制转换。实现如下:
class RongQi
{
public static void main(String[] args)
{
toHex(63);//3F
toOctal(66);//102
toBinary(6);//110
}
public static void toHex(int num)
{
change(num,15,4);
}
public static void toOctal(int num)
{
change(num,7,3);
}
public static void toBinary(int num)
{
change(num,1,1);
}
public static void change(int num,int yushu,int weiyi)
{
if(num == 0)
{
System.out.println("0");
return ; //return要写出来,当num为0时,下面就不要执行了,自然也就不要内存中开辟资源了。
}
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 & yushu;
arr[--pos] = chs[temp];
num = num >>> weiyi;
}
System.out.println("pos = "+ pos);
for(int i=pos;i