繁体   English   中英

为什么 java 在 BigInteger 的 mag 字段中不使用 long[]?

[英]Why doesn't java use long[] in BigInteger's mag field?

我相信 64 位 JVM long[] 比 int[] 更有效,并且可以显着加快 RSA 操作。

long[]位是个问题,但是我们可以用一些native方法强制long为unsigned,比如long z = u64add(x, y, cr) ,这里cr是一个boolean[] ,可以代替long z = x + y的。

BigInteger支持multiply() ,而不仅仅是add() 由于multiply()是更昂贵的操作,它的速度对于算法来说也是最重要的。

将两个 64 位整数相乘得到 128 位结果。 Java 中没有 128 位的 integer 类型,所以得到正确的结果不仅仅是“运算并移动一些位”。 您必须将这两个数字分成 4 个 32 位的部分,将它们相乘,然后合成结果。 或者添加一个 JVM 内在函数,以便可以使用本机 128 位操作。 不是做不到,更多的是成本效益的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM