gpt4 book ai didi

Java BigInteger 加法看起来不对

转载 作者:行者123 更新时间:2023-12-01 07:45:53 24 4
gpt4 key购买 nike

我有两个字节数组,我试图使用

添加
BigInteger n1=new BigInteger(byte[] a1);
BigInteger n2=new BigInteger(byte[] a2);
BigInteger sum=a1.add(a2);
byte[] as=sum.toByteArray();

这就是我得到的:

a1=4A4A3E502602CE0C3D1792D5A2C6BADFE701E5C668FBE1D92F19923CD2A5143B
a2=FFE735AE9FB702A6C08D3ED57CB6CCF7CBB74F6F8D3F820A837A9775AF953F0D
as=4A3173FEC5B9D0B2FDA4D1AB1F7D87D7B2B93535F63B63E3B29429B2823A5348

查看最高有效字节,0x4A 和 0xFF 的相加会生成丢失的进位。我预计添加两个 32 字节整数将得到一个 33 字节整数(这种情况是因为有进位)。

最佳答案

您确定字节数组 a1a2 的内容吗?

BigInteger b1 = new BigInteger("4A4A3E502602CE0C3D1792D5A2C6BADFE701E5C668FBE1D92F19923CD2A5143B", 16);
BigInteger b2 = new BigInteger("FFE735AE9FB702A6C08D3ED57CB6CCF7CBB74F6F8D3F820A837A9775AF953F0D", 16);
BigInteger c = b1.add(b2);
System.out.println(c.toString(16));

产品:

4a4a3e502602ce0c3d1792d5a2c6badfe701e5c668fbe1d92f19923cd2a5143b
ffe735ae9fb702a6c08d3ed57cb6ccf7cbb74f6f8d3f820a837a9775af953f0d
14a3173fec5b9d0b2fda4d1ab1f7d87d7b2b93535f63b63e3b29429b2823a5348

与预期的利差。

关于Java BigInteger 加法看起来不对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658508/

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