首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java的BigInteger实现

Java的BigInteger实现
EN

Stack Overflow用户
提问于 2018-10-08 22:28:56
回答 1查看 4.1K关注 0票数 2

我是新来的,请原谅我新手犯的错误。我目前正在做我的一个小项目,我正在处理长度在4万甚至更长的数字。

我目前正在使用BigInteger来处理这些值,我需要一些执行速度更快的东西。我读到过BigInteger在它的实现中使用了一个整数数组,我需要知道的是BigInteger是像1- 9那样使用这个数组中的每个索引来表示每个小数点,还是使用了更有效的方法。

我问这个是因为我已经有了一个使用位操作的实现,这使得它在内存和处理方面更有效率。

所以最后一个问题是- BigInteger已经足够有效了吗,我应该仅仅依靠它吗?最好知道这一点,而不是对其进行不必要的测试,因为这将花费大量时间。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-08 22:50:10

至少在OracleJava8和OpenJDK 8中,它不会为每个int存储一个十进制数字。它在int[]中为每个32位int存储完整的32位部分,可以使用its source code查看。

位操作对它来说很快,因为它是一个符号大小的值,并且大小就像你所期望的那样被打包存储,只要确保你使用the relevant BigInteger bitwise methods而不是实现你自己的即可。

如果您仍然需要更高的速度,可以尝试像GMP这样的工具,不过要知道它使用的是LGPL或GPL许可证。在Java之外使用它也会更好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52704490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档