java中,当要处理的整数太大,超出了long的范围,应该用啥基本类型去处理,实现对这个数的加减法运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中,当要处理的整数太大,超出了long的范围,应该用啥基本类型去处理,实现对这个数的加减法运算相关的知识,希望对你有一定的参考价值。

java中,当要处理的整数太大,超出了long的范围,应该用什么基本类型去处理,实现对这个数的加减法运算,请知道的人告诉一下,谢谢

java.math.*这个包可以解决楼主的问题,祝你好运。 参考技术A java.math.BigDecimal
java.math.BigInteger

分别处理无限精度的浮点和整型
参考技术B 超出long了还有float,double嘛,如果不想用这两个就没有基本类型可以用了 参考技术C 可以用数据库来处理。。数据库处理的长度大多了。。 参考技术D 用BigInteger,搜索一下就有具体用法

c++ boost::multi_array 索引太大

【中文标题】c++ boost::multi_array 索引太大【英文标题】:c++ boost::multi_array index too large 【发布时间】:2018-06-07 07:18:29 【问题描述】:

我正在使用二维 boost::multi_array 来存储自定义结构的对象。问题是我有大量这些对象,因此我需要的数组索引超出了整数的范围。是否有可能使用 long 作为多数组的索引,或者您对如何存储这么大的数据集并仍然保持以不错的速度访问它有任何其他建议?

谢谢!

【问题讨论】:

【参考方案1】:

official documentation 声明索引类型是未指定,但查看repository,可以看到定义最有可能是typedef std::ptrdiff_t index

因此,如果您为 x86 32 位系统进行编译,无论如何您肯定会用完可寻址内存,因此有限的索引大小不是您真正的问题。你唯一的选择是选择一个有足够内存的系统,它必须是一个超过 2^32 字节的系统,因此必须是一个 64 位的系统。 2^64 肯定足以代表您的多阵列的尺寸。

【讨论】:

以上是关于java中,当要处理的整数太大,超出了long的范围,应该用啥基本类型去处理,实现对这个数的加减法运算的主要内容,如果未能解决你的问题,请参考以下文章

java long型计算问题

c++中,long long是啥类型?

java数字运算结果太大,出错怎么办

c++ boost::multi_array 索引太大

/bin/echo: Argument list too long

数据的表示——进制