Java 8에서 java.nio로 작업하고 있습니다. 버퍼 내에 unsigned int가 있는데 그 값을 저장하려고하지만 음수가 나타납니다.ByteBuffer parse unsigned int
final int shouldBePositive = buffer.getInt();
이어야하며, 음수가 음수 여야합니다.
Java가 부호없는 int 유형을 가지고 있지 않다는 사실을 해결할 방법이 있습니까?
Java 8에서 java.nio로 작업하고 있습니다. 버퍼 내에 unsigned int가 있는데 그 값을 저장하려고하지만 음수가 나타납니다.ByteBuffer parse unsigned int
final int shouldBePositive = buffer.getInt();
이어야하며, 음수가 음수 여야합니다.
Java가 부호없는 int 유형을 가지고 있지 않다는 사실을 해결할 방법이 있습니까?
단순히 이걸로 생활하는 것 외에는 long
유형을 항상 사용할 수 있으며 사용량을 최하위 32 비트로 제한 할 수 있습니다.
이는 32 비트 부호없는 정수 유형을 모델링합니다.
더 이상 서명되지 않은 유형의 경우 java.math.BigInteger
에 솔루션을 기반으로해야합니다.
나는 부호없는 long에 대해서도 다른 시나리오를 가지고있다. 그래서 이것은 여전히 도움이되지 않습니다. – slashms
그런 경우 Alex가 제안한대로'Long.toUnsignedString()'을 사용하십시오. 다른 방법으로는 효과가 없다면 자신 만의 방법을 개발해야합니다. 당신은 항상 ByteBuffer로부터 raw (signed) 바이트를 얻을 수있다. –
"저장하고 싶습니다."정확히 무슨 뜻입니까? 그것을 String으로 변환하고 싶다면'Integer.toUnsignedString'을 사용할 수 있습니다. – Alex
예, 그 사실을 해결할 수있는 방법이 있습니다. 그래도 예쁜 것은 아닙니다. –