我正在用BigIntegers隨機值進行試驗。BigInteger.toByteArray()在java中返回奇怪的值
BigInteger bi1 = new BigInteger("365375409332725729550921208179070754913983135742");
BigInteger bi2 = new BigInteger("386718480727050819604290866521372728863001258687");
byte[] bytesBi1 = bi1.toByteArray();
byte[] bytesBi2 = bi2.toByteArray();
第一個是產生奇怪值的那個。 第二是好的。
有人可以向我解釋我做錯了什麼嗎?
編輯
我這裏還有結果:
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 2012-03-18 23:24:58
你的意思是它給出了數組中的負數?如果是這樣,這是因爲Java中的字節是帶符號的字節。 – 2012-03-18 23:34:07
我編輯帖子以包含結果。我不明白爲什麼bytesBi1有這個值。 – 2012-03-18 23:56:03