可能重复:
C 中的“BigInt”?
嘿!我正在使用unsigned int计算 C 中最多 46 的斐波那契数,但我无法计算 F(47) 因为它很长。那么,有没有办法在 C 中获得大于 2^32 的数字?
注意:我使用 32 位处理器。
可能重复:
C 中的“BigInt”?
嘿!我正在使用unsigned int计算 C 中最多 46 的斐波那契数,但我无法计算 F(47) 因为它很长。那么,有没有办法在 C 中获得大于 2^32 的数字?
注意:我使用 32 位处理器。
(unsigned) long long,但它也有限制(2^64)。如果还不够,你需要寻找一个BigInt库。
#include <stdint.h>
uint64_t my64bit;
您可以尝试使用 64 位无符号整数(检查您的 C 实现以获得支持),或者简单地使用 BigNum 包,如GMP。
过去,我出于各种目的自己制作了 BigNum 库,但 GMP 使我的微薄努力付诸东流。
我喜欢用户 R.. 给出的答案,这个问题在这里对 bigints 进行操作。当然,如果要将其扩展到非常大的数字,则必须实现自己的 add 函数。它非常清楚地解释了这些步骤。
您应该实现自己的能够容纳大数字的数据类型或使用诸如此类的库。