Chinaunix

标题: 请问java里面有没有这样的函数? [打印本页]

作者: mill888    时间: 2009-04-01 19:07
标题: 请问java里面有没有这样的函数?
就像 c 里面的strtol 和strtoll,
比如strtol("6b391735e7630429e70dd25295e12667");
      strtoll("6b391735e7630429e70dd25295e12667");

都能得到一个数值;

可是如果用java 的 Long.parseLong("6b391735e7630429e70dd25295e12667");

就抛出异常了java.lang.NumberFormatException


请问java里面有没有strtol和strtoll类似功能的函数??
作者: liuex    时间: 2009-04-01 20:08
你确认用C的那个函数可以得到一个“数值”类型的东西?

那个字符串看起来像是一个16进制的整数。如果是16进制的话,那串字符串的值将会有16个字节长。C/C++/Java都不会在语言级上支持16个字节的整形数的吧。

可以试试看java.math.BigInteger(String val, int radix)
作者: mill888    时间: 2009-04-02 10:00
原帖由 liuex 于 2009-4-1 20:08 发表
你确认用C的那个函数可以得到一个“数值”类型的东西?

那个字符串看起来像是一个16进制的整数。如果是16进制的话,那串字符串的值将会有16个字节长。C/C++/Java都不会在语言级上支持16个字节的整形数的吧。 ...



C 和 C++确实可以得到一个很大的数,AIX的开发包strtoimax函数就是包装了strtol和strtoll函数;


其实我是想翻译一个算法,这个算法是在 c 上实现的;
现在我想把他移植到java上;
这个算法就是把一串报文按照md5算法得到一个digest[16],然后根据这个digest得到一个大的整数,然后再去加密.....

现在就卡在这个digest转大整数这里了;




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2