在Java中将Signed Int转换为Unsigned String值

时间:2012-05-16 19:36:43

标签: java binary unsigned signed representation

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

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

我是否可以通过“& 0xFF”等按位操作来获取无符号数?

3 个答案:

答案 0 :(得分:8)

我会尝试

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

打印

4294941525

"" + (val & 0xFFFFFFFFL)

答案 1 :(得分:5)

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

答案 2 :(得分:1)

您可以使用Guava的UnsignedInts.toStringparseUnsignedInt来扭转此过程。

相关问题