本文介绍了Integer.parseInt()不解析大的负数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试 Integer.parseInt(80000010,16)
时,为什么会抛出NumberFormatException?那个 IS 是一个32位的数字,这是java的int的大小。
Why is NumberFormatException is thrown when i try Integer.parseInt("80000010", 16)
?? That IS a 32-bit number, which is the size of java's int.
编辑:
最好的部分就是这个。 ..
The best part is this...
int z = 0x80000010;
System.err.println("equal to " + z);
打印 -2147483632
这确实是 0x80000010
根据我的计算器;)
Prints -2147483632
which is indeed 0x80000010
according to my calculator ;)
推荐答案
你可以做到
int value = (int) Long.parseLong("80000010", 16)
更新:
使用(2014)你可以写
With Java 8 update (2014) you can write
int value = Integer.parseUnsignedInt("80000010", 16);
这篇关于Integer.parseInt()不解析大的负数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!