2016-10-05 14 views
-2

私はJava 8のjava.nioで作業しています。 バッファ内に符号なしintが入っています。そのように保存したいのですが、負の数があります。ByteBuffer parse unsigned int

final int shouldBePositive = buffer.getInt(); 

そしてshouldBePositiveは負である。

Javaがunsigned int型を持っていないという事実を回避する方法はありますか?

+0

"私はそれを保存したい"とはどういう意味ですか?それをStringに変換する場合は、 'Integer.toUnsignedString'を使用できます。 – Alex

+0

はい、その事実を回避する方法があります。しかし、それはかなりではありません。 –

答えて

2

これだけではなく、常にlongタイプを使用して、最下位32ビットに制限することができます。

これは32ビットの符号なし整数型をモデル化します。

署名のない型の場合は、java.math.BigIntegerの解をベースにする必要があります。

+0

私は、unsigned longの他のシナリオも持っています。だからこれはまだ私を助けない。 – slashms

+0

その場合、Alexが提案したように 'Long.toUnsignedString()'を使用してください。あなたのために他に働いているものがなければ、独自の方法を開発する必要があります。 'ByteBuffer'から生の(署名された)バイトをいつでも得ることができます。 –

関連する問題