为了简短起见,我得到一个带符号的数字,-25771(用Java表示),我需要无符号字符串表示,即“4294941525”。 Java认为这个数字是带符号的二进制补码,但我需要它的无符号值。
我注意到Integers的toString()方法的Javadoc只转换为带符号的表示。
我是否可以通过“& 0xFF”等按位操作来获取无符号数?
答案 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.toString和parseUnsignedInt来扭转此过程。