我正在用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