本文介绍了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()不解析大的负数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-24 08:55