关于字符串,该如何解决
阅读
c265e4bd629300c5cba88450874b7769800d3d266518e10d 表示的一串数字是多少?怎么算出来?
------解决方案--------------------
------解决方案--------------------
我倒是随便写了段代码,不过好像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 看看对不对了。
阅读
上一篇:上传文件时,后台代码中取字段有关问题 下一篇:返回列表