2017-02-19 76 views
1

我需要一种方式来使用非常非常大的数据类型。而一个int通常是4个字节,我需要的数据类型为536,870,912字节或甚至更高。我不能只使用一个数组,因为我需要能够将它们转换为字符串,加,减,乘,除等。如何在C++中获得任意大的数字?

如何创建或使用如此大的数据类型?我需要一个uint4294967296_t:P

注意我试过使用bitfields的结构,但它们不够大,我无法在使用它的值之间进行转换。

+4

使用[库](https://gmplib.org/),也许? –

+1

格雷格指的是GIMP库,通常为此推荐。 –

+0

投票结束,因为图书馆的建议目前与SO无关。 –

回答

2

使用Bignumber库,我更喜欢TTMath的简单性。你可以在这里找到它Link to tttmath。 TTTmath允许在大数字上进行操作,但您可能需要制作自己的toString方法。

这里是TTTmath的例子在使用他们的Samples页:

#include <ttmath/ttmath.h> 
#include <iostream> 

int main() 
{ 
ttmath::UInt<2> a,b,c; 

    a = "1234"; 
    b = 3456; 
    c = a*b; 

    std::cout << c << std::endl; 
} 
Listing nr 1 
+0

建议图书馆应该是评论,而不是答案。标记为这样。 (这意味着,希望一个国防部将其转换为评论。) –

+2

为什么?他没有问如何实现大数字,而是如何使用它们。所以图书馆的建议应该是一个有效的答案。 – zett42

+0

询问图书馆推荐的问题是关于SO的话题(这是股票近距离的原因之一)。 –

相关问题