Javaでの符号なしintの宣言



Question

Javaで符号なしintを宣言する方法はありますか?

あるいは、疑問はこれと同様に枠組みされるかもしれません:署名されたJavaの同等のものは何ですか?

私がJavaのString.hashcode()の実装を見ている文脈を伝えるだけです。 整数が32の符号なし整数であった場合、衝突の可能性をテストしたかったのです。




ちょうどこのコードを作成し、 "this.altura"を負の数から正の数に変換します。 これが必要な人に役立つことを願って

       if(this.altura < 0){    

                        String aux = Integer.toString(this.altura);
                        char aux2[] = aux.toCharArray();
                        aux = "";
                        for(int con = 1; con < aux2.length; con++){
                            aux += aux2[con];
                        }
                        this.altura = Integer.parseInt(aux);
                        System.out.println("New Value: " + this.altura);
                    }



私たちは、MySQLの符号なしTINYINTSMALLINTINTBIGINTjOOQでモデル化する必要がありました。 jOOU 、Javaの符号なし整数のラッパー型を提供する最小限のライブラリであるjOOUを作成したからです。 例:

import static org.joou.Unsigned.*;

// and then...
UByte    b = ubyte(1);
UShort   s = ushort(1);
UInteger i = uint(1);
ULong    l = ulong(1);

これらの型はすべてjava.lang.Numberを拡張し、高次プリミティブ型とBigInteger変換できます。 お役に立てれば。

(免責事項:私はこれらの図書館の背後にある会社のために働いています)




おそらく、これはあなたが意味するものですか?

long getUnsigned(int signed) {
    return signed >= 0 ? signed : 2 * (long) Integer.MAX_VALUE + 2 + signed;
}
  • getUnsigned(0) →0
  • getUnsigned(1) →1
  • getUnsigned(Integer.MAX_VALUE) →2147483647
  • getUnsigned(Integer.MIN_VALUE) →2147483648
  • getUnsigned(Integer.MIN_VALUE + 1) →2147483649



Related