16位十六进制字符串在Java中有符号整数(16 bit hex string to signed

2019-08-17 07:05发布

我在Java中的字符串代表HEX有符号的16位值。 这个字符串可以从任何"0000""FFFF"

我使用Integer.parseInt("FFFF",16)将其转换为整数。 然而,这将返回一个无符号的值( 65535 )。

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

我怎样才能做到这一点? 自从16位的值,我想用的Short.parseShort("FFFF",16)但告诉我,我是超出范围。 我猜parseShort()期望一个负号。

Answer 1:

你可以施放int从返回Integer.parseInt()到短:

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

结果:

-1


Answer 2:

尝试

int i = (short) Integer.parseInt("FFFF", 16);


文章来源: 16 bit hex string to signed int in Java