【发布时间】:2021-01-02 20:11:25
【问题描述】:
我希望创建一个 java 方法,该方法采用 4 字节有符号十六进制数并将其转换为 int。 但是,当我测试诸如“aaaaaaaa”或“ffffffff”之类的输入时
Integer.valueOf("aaaaaaaa", 16)
Integer.valueOf("ffffffff", 16)
应该分别给出值:-1431655766 和 -1。
但是,我遇到了以下异常
Exception in thread "main" java.lang.NumberFormatException: For input string: "ffffffff"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.valueOf(Integer.java:740)
at ByteTest.main(ByteTest.java:8)
我能做些什么来解决这个问题?
【问题讨论】:
-
从 Java 8+ 开始,使用
parseUnsignedInt(),这两个输入的结果将是-1431655766和-1。
标签: java type-conversion hex value-of