Java 为什么可以';这个4字节的十六进制数不能转换成整数吗?

Java 为什么可以';这个4字节的十六进制数不能转换成整数吗?,java,type-conversion,hex,value-of,Java,Type Conversion,Hex,Value Of,我希望创建一个java方法,它接受一个4字节的有符号十六进制数,并将其转换为int。 但是,当我测试诸如“aaaaaa”或“ffffffff”之类的输入时 其值应分别为:-1431655766和-1 然而,我得到了以下例外 Exception in thread "main" java.lang.NumberFormatException: For input string: "ffffffff" at java.lang.NumberFormat

我希望创建一个java方法,它接受一个4字节的有符号十六进制数,并将其转换为int。 但是,当我测试诸如“aaaaaa”或“ffffffff”之类的输入时

其值应分别为:-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)
我能做些什么来解决这个问题?

来自JavaDoc

返回一个整数对象,当使用第二个参数给定的基数进行分析时,该对象包含从指定字符串中提取的值。第一个参数被解释为表示第二个参数指定的基数中的有符号整数,就好像这些参数被赋予了parseInt(String,int)方法一样

整数不能包含八位十六进制值的正等价值。

从Java 8+开始,使用,这两个输入的结果将是
-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)