在Java中使用16位hex字符串到signed int
我在Java中有一个字符串表示HEX中带符号的16位值。 此字符串可以是"0000"
到"FFFF"
。
我使用Integer.parseInt("FFFF",16)
将其转换为整数。 但是,这将返回无符号值( 65535
)。
我希望它返回一个有符号的值。 在此特定示例中, "FFFF"
应返回-1
。
我怎样才能做到这一点? 由于它是一个16位的值,我想到使用Short.parseShort("FFFF",16)
但这告诉我,我超出了范围。 我猜parseShort()
期望一个负号。
您可以将从Integer.parseInt()
返回的int
Integer.parseInt()
转换为short:
short s = (short) Integer.parseInt("FFFF",16); System.out.println(s);
结果:
-1
尝试
int i = (short) Integer.parseInt("FFFF", 16);