3

可能重复:
C 中的“BigInt”?

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

4

5 回答 5

11

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

于 2010-08-08T13:51:45.253 回答
2
#include <stdint.h>

uint64_t my64bit;
于 2010-08-08T13:59:19.267 回答
1

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

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

于 2010-08-08T14:02:33.830 回答
1

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

于 2010-08-08T14:21:48.833 回答
0

您应该实现自己的能够容纳大数字的数据类型或使用诸如此类的

于 2010-08-08T13:53:47.187 回答