c265e4bd629300c5cba88450874b7769800d3d266518e10d  表示的一串数字是多少?怎么算出来?

解决方案 »

  1.   

    这个字符串太长了,我转的时间才报 NumberFormatException异常呀,有什么好的办法可以转,哪位高手帮小弟解决一下!谢谢
      

  2.   

    来个最笨的方法,不过不会出现异常哦
    public static void main(String args[]){
    long nub = 0l;
    nub =10*16*16*16*16+1*16*16*16+2*16*16+3*16+0;
    System.out.println("------nub---"+nub);
    }
      

  3.   


    测试数据时Sting s ="a123"
      

  4.   

    用bigDecimal去接收吧,你会很满意的,不过必须先将其转换为10进制字符串哦好方法似乎没有
    建议还是老老实实写循环去转吧long型好像也存储不了的哦。
    有好办法露一手哈
      

  5.   

    我倒是随便写了段代码,不过好像BigDecimal的累加出了点问题,原因我没有找出来代码如下:
    import java.math.BigDecimal;
    public class Test 
    {
    private int change(char c)
    {
    switch(c)
    {
    case '1':return 1;
    case '2':return 2;
    case '3':return 3;
    case '4':return 4;
    case '5':return 5;
    case '6':return 6;
    case '7':return 7;
    case '8':return 8;
    case '9':return 9;
    case 'a':return 10;
    case 'b':return 11;
    case 'c':return 12;
    case 'd':return 13;
    case 'e':return 14;
    case 'f':return 15;
    default:return 0;
    }
    }
    String str="c265e4bd629300c5cba88450874b7769800d3d266518e10d";
    public String run()
    {
    char[] s=str.toCharArray();
    String rs="";
    BigDecimal result=new BigDecimal("0");
    for(int i=0;i<s.length;i++)
    {
    BigDecimal sta=new BigDecimal(change(s[i]));
    BigDecimal quan=new BigDecimal(16).pow(s.length-1-i);
    result=result.add(sta.multiply(quan));
    }
    return rs=result.toString();
    }
    public static void main (String[] args)
    {
    Test t=new Test();
    System.out.println(t.run());
    }
    }
    答案是4766625618663571497836132322132490719026828879351160299789 看看对不对了。