12

我在 Java 中有一个字符串,表示十六进制的有符号 16 位值。这个字符串可以是从"0000"到的任何东西"FFFF"

Integer.parseInt("FFFF",16)用来将其转换为整数。但是,这会返回一个无符号值 ( 65535)。

我希望它返回一个有符号的值。在这个特定的例子中"FFFF"应该返回-1.

我怎样才能做到这一点?因为它是一个 16 位的值,我想使用Short.parseShort("FFFF",16),但这告诉我我超出了范围。我想parseShort()预计会出现负号。

4

2 回答 2

15

您可以将int返回的 fromInteger.parseInt()转换为 short:

short s = (short) Integer.parseInt("FFFF",16);
System.out.println(s);

结果:

-1
于 2013-03-04T13:46:06.203 回答
2

尝试

int i = (short) Integer.parseInt("FFFF", 16);
于 2013-03-04T13:46:08.670 回答