gpt4 book ai didi

java - BigInteger.toByteArray() 在 java 中返回奇怪的值

转载 作者:行者123 更新时间:2023-11-29 09:15:30 26 4
gpt4 key购买 nike

我正在试验具有随机值的 BigIntegers。

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]

最佳答案

BigIntegertoByteArray() 方法返回 two's complement数字的表示。

您获得的值实际上是您输入的数字的正确二进制补码表示。

关于java - BigInteger.toByteArray() 在 java 中返回奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com