私はJava 8のjava.nioで作業しています。 バッファ内に符号なしintが入っています。そのように保存したいのですが、負の数があります。ByteBuffer parse unsigned int
final int shouldBePositive = buffer.getInt();
そしてshouldBePositiveは負である。
Javaがunsigned int型を持っていないという事実を回避する方法はありますか?
私はJava 8のjava.nioで作業しています。 バッファ内に符号なしintが入っています。そのように保存したいのですが、負の数があります。ByteBuffer parse unsigned int
final int shouldBePositive = buffer.getInt();
そしてshouldBePositiveは負である。
Javaがunsigned int型を持っていないという事実を回避する方法はありますか?
これだけではなく、常にlong
タイプを使用して、最下位32ビットに制限することができます。
これは32ビットの符号なし整数型をモデル化します。
署名のない型の場合は、java.math.BigInteger
の解をベースにする必要があります。
私は、unsigned longの他のシナリオも持っています。だからこれはまだ私を助けない。 – slashms
その場合、Alexが提案したように 'Long.toUnsignedString()'を使用してください。あなたのために他に働いているものがなければ、独自の方法を開発する必要があります。 'ByteBuffer'から生の(署名された)バイトをいつでも得ることができます。 –
"私はそれを保存したい"とはどういう意味ですか?それをStringに変換する場合は、 'Integer.toUnsignedString'を使用できます。 – Alex
はい、その事実を回避する方法があります。しかし、それはかなりではありません。 –