如何在C++中对非常大的数字进行加法运算?

3

如何在C++中添加非常大的数字?


这个问题已经重复了。 https://dev59.com/InVC5IYBdhLWcg3whBej - jaircazarin-old-account
数字不一定是整数,因此可能不完全相同。 - tvanfosson
还可以在这里查看:http://stackoverflow.com/search?q=BigInt+c%2B%2B - Martin York
如果您想自己执行多精度数学运算,那么我建议您查看唐纳德·克努斯(Donald Knuth)的《计算机程序设计艺术》(Art of Computer Programming)。我相信第二卷《半数值算法》中的第4章《多精度算术》是您感兴趣的内容。此外,还可以参考如何在C++中添加任意大小的两个整数?,其中提供了一些C++库和OpenSSL的代码。 - jww
6个回答

3

1

在谷歌上搜索“Bigint C++”,这将为您提供一系列高精度整数算术库。


0

0

“非常大”是多大?一个有符号的长整型可以达到2,147,483,647,而无符号的长整型可以达到4,294,967,295。


不准确的是 sizeof(long) >= sizeof(int)。因此,在技术上,long 只需要和 int 一样大(在现今大多数系统上只有32位)。long long(C++的一个扩展,尚未得到官方支持)至少有64个字节。 - Martin York
你的意思是64位,而不是64字节。 - TonJ
准确的说,sizeof(long) >= sizeof(int)并不是唯一的要求;32位的范围也是一个要考虑的因素。 - MSalters

0

GMP有一个GMPXX C++包装器,非常不错。GMP支持整数和浮点数,并且是LGPL许可证。

我用过它。还可以,但要注意创建大量的临时变量。(可能会影响效率。)


-1
你可以使用像 LiDIA 这样的库来创建一个“大整数”类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接