簡體   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