A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 惠晖 于 2012-12-10 18:07 编辑

"1111111010100000000000000000000" 不管用parseInt 还是parseLong都会报运行异常NumberFormatException

7 个回复

正序浏览
崔政 中级黑马 2012-12-11 15:55:10
8#
哎,以前一直没留意Integer有一个这么叼的方法。。
以前不知道,让我死在26进制转10进制上了。悲剧啊。。{:soso_e109:}
回复 使用道具 举报
惠晖 发表于 2012-12-10 18:02
你说的我也理解  我现在想把这个0x7f500000转成10进制 你能告诉我怎么做么
  1. class  test2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String  str="0x7f500000";
  6.                 Long l = Long.parseLong(str.substring(2),16);   //substring返回一个新字符串,从第二个开始   
  7.                 System.out.println(l);
  8.         }
  9. }
复制代码
你试试吧,0x7f500000关键是把前面0x去掉,然后转化。。。
回复 使用道具 举报
但汉涛 发表于 2012-12-10 16:50
parseInt(string, radix)
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数 ...

你说的我也理解  我现在想把这个0x7f500000转成10进制 你能告诉我怎么做么
回复 使用道具 举报
本帖最后由 惠晖 于 2012-12-10 18:08 编辑
翁鹏 发表于 2012-12-10 16:43
你自己的原因吧,看看你的代码是不是这种格式

int num = Integer.parseInt("1111110101000000000000000000 ...


为什么后面写2呢  老师上的视频不是写10的么 或者默认不写的么
回复 使用道具 举报
parseInt(string, radix)
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
举例,如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

long的取值范围为-9223372036854775807 ~ 9223372036854775808

java.lang.NumberFormatException:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。

点评

够详细  发表于 2012-12-10 17:03

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 huymd1234 于 2012-12-10 16:59 编辑

parseInt(String s)将字符串参数作为有符号的十进制整数进行解析,然后返回int型的值,而你给的这个字符串经过转化后产生的数字已经超过了int以及lang的取值范围所以会产生NumberFormatException。Integer.MAX_VALUE=2147483647 /Long.MAX_VALUE=9223372036854775807.你应该用parseInt(String s,int radix)方法,这个方法能指定你传的字符串参数是什么格式的参数如果是2进制的字符串radix就是2,如果是10进制的字符串radix就是10
回复 使用道具 举报
本帖最后由 翁鹏 于 2012-12-10 16:56 编辑

你自己的原因吧,看看你的代码是不是这种格式

int num = Integer.parseInt("111111010100000000000000000000", 2);
               
System.out.println(num);
我试了 我的可以。 结果为:1062207488
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马