gpt4 book ai didi

Java 的 BigInteger 实现

转载 作者:行者123 更新时间:2023-12-05 04:04:20 26 4
gpt4 key购买 nike

我是新来的,所以请原谅我的菜鸟错误。我目前正在做我的一个小项目,该项目让我处理长度在四万及以上的数字。

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

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

所以最后一个问题是 - BigInteger 是否已经足够高效,我应该只依赖它吗?最好知道这一点,而不是不必要地进行测试,这会花费很多时间。

谢谢。

最佳答案

至少对于 Oracle 的 Java 8 和 OpenJDK 8,它不会为每个 int 存储一位小数。它在 int[] 中为每个 32 位 int 存储完整的 32 位部分,这可以通过 its source code 查看。 .

位运算对它来说很快,因为它是一个符号幅度值,并且幅度按照您的预期打包存储,只需确保您使用 the relevant BigInteger bitwise methods而不是实现您自己的。

如果您仍然需要更快的速度,请尝试类似 GMP 的方法,但请注意它使用 LGPL 或 GPL 许可证。在 Java 之外使用它也会更好。

关于Java 的 BigInteger 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52704490/

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