为什么 Integer.parseInt("11111111111111111111111111111111",2) 在java中抛出异常? [关闭]

2024-02-08

为什么 Integer.parseInt("11111111111111111111111111111111",2) 抛出

java.lang.NumberFormatException: For input string: "11111111111111111111111111111111" 

在java中整数是32位,我期望一个有效的返回值,这里出了什么问题?


您假设您正在将原始位传递给该方法,但实际上您正在传递一个二进制表示的号码。因此您最多可以指定 31 位,并且sign。这给出了您所期望的结果:

Integer.parseInt("-1", 2);

该方法的契约是这样的,您可以指定任何(合理的)基础,例如十六进制 base:

Integer.parseInt("-1", 36);

由此可见,这是关于从任意数字系统中的表示形式到int,而不是传递原始内容int.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Integer.parseInt("11111111111111111111111111111111",2) 在java中抛出异常? [关闭] 的相关文章

随机推荐