java - 如有必要,切换到 BigInteger

标签 java biginteger

我正在读取一个文本文件,其中包含 [1, 10^100] 范围内的数字。然后我对每个数字执行一系列算术运算。仅当数字超出 int/long 范围时,我才想使用 BigInteger。一种方法是计算字符串中有多少位数字,如果太多则切换到 BigInteger。否则我只会使用原始算术,因为它更快。有没有更好的办法?

是否有任何原因导致 Java 无法自动执行此操作,即如果 int 太小则切换到 BigInteger?这样我们就不必担心溢出。

最佳答案

我怀疑对整数和实数使用原始值的决定(出于性能原因这样做)使该选项成为不可能。请注意,Python 和 Ruby 都会按照您的要求进行操作。

在这种情况下,处理较小的特殊情况可能需要做更多的工作(您需要一些自定义类来处理这两种情况),您应该只使用 BigInteger .

关于java - 如有必要,切换到 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587060/

相关文章:

java - Hibernate:首次启动程序期间出现未知实体异常

java - 为什么我得到 java.lang.IllegalStateException : The specified child already has a parent

java - 在 web-xml 和文件系统 (tomcat) 中添加新的 servlet 类

java - isEven 在另一种方法中

c# - 如何生成一定范围内的随机 BigInteger?

java - BigInteger 使用什么算法将整数转换为字节数组

java - 在 Java 中将 ArrayList 作为泛型参数传递

java - Number 或 BigInteger 和 BigDecimal 中的错误(或者在这些的 API 文档中)?

visual-c++ - _umul128 在 Windows 32 位上

java - 在检查 BigInteger 的可整除性时,我应该使用 mod 还是 remainder?