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

Ale*_*x W 2 java binary unsigned signed representation

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

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

是否有一个按位操作,如"&0xFF",我可以做到无符号数?

Pet*_*rey 8

我会尝试

int val = -25771;
System.out.println(Long.toString(val & 0xFFFFFFFFL));
Run Code Online (Sandbox Code Playgroud)

版画

4294941525
Run Code Online (Sandbox Code Playgroud)

要么

"" + (val & 0xFFFFFFFFL)
Run Code Online (Sandbox Code Playgroud)


Han*_*nde 6

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