【发布时间】:2014-05-12 21:52:15
【问题描述】:
假设我这样做
BigInteger n;
我可以给 n 赋值而不溢出吗?例如,
p = new BigInteger(512*512*512, 15, new Random());
n=p;
这是因为我制作了 RSA alg。有时它给了我正确的值,而有时它给了我错误的值,我想确保我不会在某个地方溢出。
如果溢出是问题,我应该,或者我应该如何初始化我的 BigInts?
【问题讨论】:
-
你不应该做
n = p,这分配了参考; -
嗯,这仍然不能解释为什么有时我得到正确的值,有时我得到错误的值。或者可能是这样?
-
使用字符串而不是数字
-
@GeorgeIrimiciuc 但是要存储位长为 512 的三个数字的乘积,您只需要位长 1536,而不是 512 ^ 3。
-
你需要 512 * 3 位,而不是 512 ^ 3,基本上,来表示三个数字的乘积,每个数字有 512 位。
标签: java biginteger bigint