本帖最后由 maochong 于 2012-2-9 21:48 编辑
/*
* 关键思想:
* 1 除余取整法转换进制
* 2 十六进制中的A,B,C,D,E,F如何表示和生成
* 3 逆序添加余数对应的十六进制的字符串
*/
public class Demo {
public static void main(String [] argc)
{
System.out.println(test(60));
System.out.println(test(101));
System.out.println(test(200));
}
//下面函数是十进制转换为十六进制函数
public static String test(int num)
{
String str=new String();//用来保存结果
String [] strValue=new String[128];//用来保存余数
int i=0;
while(num != 0)
{
int n=num%16;//n是余数
if(n >= 0 && n <= 9)
{
strValue[i++]=String.valueOf(n);//把余数直接转换为对应字符串
}
else
{
//先把余数转换为对应的字符,再转换为字符串
strValue[i++]=String.valueOf((char)('A'+n-10));
}
num=num/16;
}
int len=i;//保存十六进制的位数
for(i=len-1;i>=0;i--)
{
str=str.concat(strValue);//倒序连接每一位数对应的字符串
}
return str;
}
}
楼上测试下。我测试了没有错误。你领悟下关键思想吧。 |