2

为了简短起见,我得到了一个有符号数 -25771(在 Java 中),我需要它的无符号字符串表示形式,即“4294941525”。Java 认为这个数字是有符号的二进制补码,但我需要它的无符号值。

我注意到 Integers 的 toString() 方法的 Javadoc 仅转换为有符号表示。

是否没有像“& 0xFF”这样的按位运算来获取无符号数?

4

3 回答 3

9

在 Java 8 中,您可以只使用Integer.toUnsignedString(int i).

于 2015-05-15T20:46:35.890 回答
8

我会尝试

int val = -25771;
System.out.println(Long.toString(val & 0xFFFFFFFFL));

印刷

4294941525

或者

"" + (val & 0xFFFFFFFFL)
于 2012-05-16T19:41:44.130 回答
1

您可以使用 Guava 的UnsignedInts.toStringparseUnsignedInt来反转该过程。

于 2014-01-15T14:21:47.170 回答