我写的代码
public class HEX
{
public static String trans(int x)
{
String result = "";
int temp;
while(x>0)
{
temp = x % 16;
if(temp<10)
{
result = String.valueOf(temp)+result;
}
else
{
  int t = temp-10;
        result = String.valueOf((char)((int)'A'+t)) + result;
}
x = x/16;
}
return result;
}
public static void main(String[] args)
{
System.out.println(trans(64));
}
}

解决方案 »

  1.   

    Integer和Long提供了toBinaryString, toHexString和toOctalString方
      法,可以方便的将数据转换成二进制、十六进制和八进制字符串。功能更
      加强大的是其toString(int/long i, int radix)方法,可以将一个十进
      制数转换成任意进制的字符串形式。
      

  2.   

    既然不允许使用任何类和库函数,那程序输入也应该不是String,而是char数组.
      我写的代码(没有用任何类和库函数)
    public class Test{
    public static void main(String args[]){
    char[] input={'1','2','3'};
    char[] output=Convert(input,3);
    System.out.print(output);
    }

    public static char[] Convert(char[] in, int len){
    int num=0;
    int num1=0;
    int length=0;
    char out[];
    for(int i=0;i<len;i++)
    {
        int temp=((int)in[len-(i+1)])-48;
        num+=PowerOf10(temp,i);
    }
    System.out.println(num);
    num1=num; for(;num>0;num/=16,length++)
    {
    }
    out=new char[length];

    for(int i=0;num1>0;num1/=16,i++)
    {
    int temp=num1%16;
    System.out.println(temp);
    if(temp<10)
      out[length-(i+1)]=(char)(temp+(int)('0'));
    else
      out[length-(i+1)]=(char)((int)'A'+(temp-10));
    }

    return out;
    }

    public static int PowerOf10(int i,int pow)
    {
    if(pow==0)  return i;
    else return PowerOf10(i,pow-1)*10;
    }
    }
      

  3.   

    题目应该是说不能使用String.toHexString以及其他第三方提供的16进制代码但是不清楚他的整数string是否没有位数要求,如果有的话,那就更麻烦了,如果位数做理想处理,先转成long,再做处理就很简单了
      

  4.   

    题目应该是说不能使用String.toHexString以及其他第三方提供的16进制代码public class  Dec2HexTest
    {
    public static void main(String[] args) 
    {
    String[] hexvalue = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"}; String decstr = "5586";
    String hexstr = ""; int hex = 16; long longint = Integer.parseInt(decstr);
    StringBuffer strbuf = new StringBuffer(); while (longint != 0){
    strbuf.append(hexvalue[(int)(longint%hex)]);
    longint = longint/hex;
    } hexstr = strbuf.reverse().toString();
    System.out.println(hexstr); }
    }