繁体   English   中英

如何使用C++中的Class函数来保存大数

[英]How to use the Class function in C++ to save large numbers

我正在创建一个关于天文学的 C++ 程序,但对于任何整数类型来说,这些数字都太大了。 我发现了一些文章,他们指出可以使用类函数来完成。 我处理的数字就像几十万光年转换成公里,所以这个数字类似于 3.081814457932196587132947576e+27。 任何想法如何保存这么大的数字?

如果您真的需要浮点格式的许多有效数字,您可能应该查看像MPFR这样的知名库。

如果您不需要浮点数,请查看事实上的标准多精度库GMP (MPFR 本身就是基于该库)。

请注意,两者都是 C 库。 GMP 有一些 C++ 绑定/包装器,但并不是所有的东西都被包装了,所以除了最基本的算术之外,你仍然需要调用 C 函数。 MPFR 也是如此(在他们的网站上列出了一堆 C++ 包装器)。

如果你只想处理整数,那很简单。

您可以将数字存储到数组中,例如:

big_num = [3, 0, 8, 1, 8, 1, 4, 4, 5, 7, 9, 3, 2, 1, 9, 6, 5, 8, 7, 1, ... 6]

在数组的每个索引处都有一个数字

您可以自己实现计算功能,或者您可以使用一个大的 num 库,如:

https://github.com/kokke/tiny-bignum-c

https://www.di-mgt.com.au/bigdigits.html

https://gmplib.org/

我相信你可以在互联网上找到真正适合你的库。 :)

暂无
暂无

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

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