为什么 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(使用前将#替换为@)