繁体   English   中英

在Java中使用16位十六进制字符串到signed int

[英]16 bit hex string to signed int in Java

我在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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM