【问题标题】:More than 4,294,967,296 in C? [duplicate]超过 4,294,967,296 个 C 语言? [复制]
【发布时间】:2010-08-08 13:47:35
【问题描述】:

可能重复:
“BigInt” in C?

你好! 我正在使用 unsigned int 计算 C 中最多 46 的斐波那契数,但我无法计算 F(47),因为它很长。那么,有没有办法在 C 中获得大于 2^32 的数字?
注意:我使用的是 32 位处理器。

【问题讨论】:

    标签: c fibonacci


    【解决方案1】:

    (unsigned) long long,但也有限制(2^64)。如果还不够,还需要寻找BigInt库。

    【讨论】:

    • 当然,在 x86 和其他一些架构上,您可以使用 __uint128_t 将其推送到 128 位...
    【解决方案2】:
    #include <stdint.h>
    
    uint64_t my64bit;
    

    【讨论】:

      【解决方案3】:

      您可以尝试使用 64 位无符号整数(检查您的 C 实现以获得支持),或者简单地使用像 GMP 这样的 BigNum 包。

      过去,我出于各种目的自己制作了 BigNum 库,但 GMP 使我的微薄努力付诸东流。

      【讨论】:

        【解决方案4】:

        我喜欢用户 R.. 对于这个问题 here 在 bigints 上操作的答案。当然,如果要将其扩展到非常大的数字,则必须实现自己的 add 函数。它非常清楚地解释了这些步骤。

        【讨论】:

          【解决方案5】:

          您应该实现自己的能够容纳大数字的数据类型或使用诸如this one 之类的库。

          【讨论】:

            猜你喜欢
            • 2015-10-08
            • 2013-02-03
            • 2018-04-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-07
            相关资源
            最近更新 更多