0

オーバーフローによるものでしょうか?しかし、私の理解では、Math.random() は 1 未満の数値を返し、結果は 0xFFFFFFFF 未満になるはずです。

4

4 に答える 4

4

0xFFFFFFFF2 の補数は-110 進数です。

そうです、とMath.random()の間の数値を返します。だとします。次に、次のようになります。010.5

(int) (0.5 * -1)which is (int)(-0.5)which is which is0にキャストしたときint

最大の正の数を使用する場合は、次のようにします。

(int) (Math.random() * 0x7FFFFFFF)
                         ^ 

またはさらに良い

(int) (Math.random() * Integer.MAX_VALUE)
于 2013-07-03T13:27:40.050 に答える