【问题标题】:storing big numbers in c++ or c [duplicate]在c ++或c中存储大数字[重复]
【发布时间】:2011-10-15 12:08:33
【问题描述】:

我正在尝试编写代码,但我卡住的地方是存储一个大数字

10^100 。这个数字很大

任何建议

【问题讨论】:

标签: c++ c


【解决方案1】:

使用 任意精度 库。我想到的一个非常流行的方法是GMP。它是一个 C 库,但它也有一个很好的 C++ 接口。它针对性能进行了优化,并且由于它被广泛使用,它可能非常强大。

【讨论】:

    【解决方案2】:

    重新定义您的单位。很少有单一种类的数量变化如此之大。任意精度库不是一个坏主意...但是如果可以牺牲精度来换取速度,您可以使用浮点。

    【讨论】:

    • 是的。表示“大数字”是应用程序的一个折衷方案。仅当精度高于任何其他标准时,使用任意精度 bignum 才有用。
    【解决方案3】:

    您需要一个多精度算术库。

    最受欢迎的可能是 GNU MP - http://gmplib.org/

    【讨论】:

      【解决方案4】:

      在 C++ 中,您可以使用许多可用的 Big Integer Libraries 中的任何一个

      【讨论】:

        【解决方案5】:

        您需要整数精度吗?如果是这样,GMP,如果不是,float 或 double 就可以了。

        【讨论】:

          【解决方案6】:

          这么大的数字 (10^100) —— 假设 ^ 你的意思是“权力”—— 不适合任何整数类型。你可以使用浮点类型(这里最好是double)和pow(),但你仍然会失去精度。如果您确实需要 100 位或更高精度的整数,请获取第 3 方 BigInt 实现之一并使用它。如果您不需要 100 位精度,请使用 double,它是语言的一部分。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-03
            • 2014-06-23
            • 1970-01-01
            • 2013-07-10
            相关资源
            最近更新 更多