私はBigIntegerをランダムな値で試しています。BigInteger.toByteArray()Javaで異常な値を返す
BigInteger bi1 = new BigInteger("365375409332725729550921208179070754913983135742");
BigInteger bi2 = new BigInteger("386718480727050819604290866521372728863001258687");
byte[] bytesBi1 = bi1.toByteArray();
byte[] bytesBi2 = bi2.toByteArray();
最初のものは奇妙な値を生成するものです。 もう1つはOKです。
誰かが私に間違っていることを説明することはできますか?
編集は
Here're結果:
bytesBi1 = [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2]
bytesBi2 = [67, -67, 14, 113, -94, 16, -120, 82, 84, 95, -127, -124, -90, -33, 29, -102, 90, 125, -86, -65]
「奇妙な価値」とはどういう意味ですか?おそらく、いくつかのコードを示すかもしれないことを詳しく教えてください。乾杯! – SimonSez
配列に負の数を与えることを意味しますか?その場合は、Javaのバイトが符号付きバイトであるためです。 –
投稿を編集して結果を追加しました。私はbytesBi1がこの値を持つ理由を理解していません。 –