【问题标题】:How can I add very large numbers in C++? [duplicate]如何在 C++ 中添加非常大的数字? [复制]
【发布时间】:2008-12-04 16:34:29
【问题描述】:

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

【问题讨论】:

标签: c++ biginteger largenumber


【解决方案1】:

考虑一个“bignum”库,例如:http://gmplib.org/http://ttmath.slimaczek.pl/ttmath。看一个简单的 bignum 类:http://www.circlemud.org/~jelson/560/

【讨论】:

    【解决方案2】:

    在“Bigint C++”上搜索一下,这将为您提供仲裁器精度整数算术库的列表。

    【讨论】:

      【解决方案3】:

      你可以在http://speleotrove.com/decimal/找到一个大十进制实现

      【讨论】:

        【解决方案4】:

        “非常大”有多大?有符号长整数可以达到 2,147,483,647,无符号长整数可以达到 4,294,967,295。

        【讨论】:

        • 不准确 sizeof(long) >= sizeof(int)。因此,从技术上讲,long 只需与 int 一样大(现在在大多数系统上只有 32)。 long long(C++ 尚未正式支持的 C 扩展)至少有 64 个字节。
        • 您的意思是 64 位,而不是 64 字节。
        • 准确。 sizeof(long) >= sizeof(int) 不是唯一的要求; 32 位范围是另一个。
        【解决方案5】:

        GMP 有一个很好的 GMPXX C++ 包装器。 GMP 支持整数和浮点数,并且是LGPL'ed。

        我用过。没关系,但要注意创建大量临时对象。 (潜在的效率受到影响。)

        【讨论】:

          【解决方案6】:

          您可以将 LiDIA 之类的库用于“大整数”类。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-09-27
            • 1970-01-01
            • 2015-06-30
            • 2022-01-11
            • 2013-03-24
            相关资源
            最近更新 更多