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