I have a string in Java representing a signed 16-bit value in HEX. This string can by anything from "0000" to "FFFF".
I use Integer.parseInt("FFFF",16) to convert it to an integer. However, this returns an unsigned value (65535).
I want it to return a signed value. In this particular example "FFFF" should return -1.
How can I achieve this? Since its a 16-bit value I thought of using Short.parseShort("FFFF",16) but that tells me that I am out of range. I guess parseShort() expects a negative sign.
解决方案
You can cast the int returned from Integer.parseInt() to a short:
short s = (short) Integer.parseInt("FFFF",16);
System.out.println(s);
Result:
-1
此篇博客介绍如何将Java中表示的16位有符号十六进制字符串(如FFFF)正确转换为-1,而不是默认的无符号值65535。通过讲解如何使用`short`类型并进行类型转换解决这个问题,确保得到预期的负数结果。
1309

被折叠的 条评论
为什么被折叠?



