Java ByteBuffer解析无符号整数

Java ByteBuffer解析无符号整数,java,nio,bytebuffer,Java,Nio,Bytebuffer,我正在使用Java8中的java.nio。 我在缓冲区中接收到一个无符号int,我想将其保存为无符号int,但得到的是一个负数 final int shouldBePositive = buffer.getInt(); 应该是积极的,也应该是消极的 有没有办法解决Java没有unsigned int类型的问题?除了简单地接受这种情况外,您还可以始终使用long类型,并将使用限制在最低有效32位 这将模拟32位无符号整数类型 对于较长的无符号类型,您需要基于java.math.biginger我

我正在使用Java8中的java.nio。 我在缓冲区中接收到一个无符号int,我想将其保存为无符号int,但得到的是一个负数

final int shouldBePositive = buffer.getInt();
应该是积极的,也应该是消极的


有没有办法解决Java没有unsigned int类型的问题?

除了简单地接受这种情况外,您还可以始终使用
long
类型,并将使用限制在最低有效32位

这将模拟32位无符号整数类型


对于较长的无符号类型,您需要基于
java.math.biginger

我还有其他无符号长类型的方案。所以这仍然对我没有帮助。在这种情况下,按照Alex的建议使用
Long.toUnsignedString()
。如果没有其他适合你的方法,你将不得不开发自己的方法;您总是可以从
ByteBuffer
“我想保存它”中获取原始(有符号)字节,这到底意味着什么?如果要将其转换为字符串,可以使用
Integer.toUnsignedString
。是的,有一种方法可以解决这个问题。但这并不漂亮。