重複の可能性:
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の実装でサポートを確認してください)、 GMPなどのBigNumパッケージを使用することもできます。
過去に、私はさまざまな目的でBigNumライブラリを自分で作成しましたが、GMPは私のわずかな努力を水から吹き飛ばします。
ここでbigintsを操作するためのこの質問に対するユーザーR..の回答が大好きです。もちろん、非常に大きな数にスケーリングしたい場合は、独自のadd関数を実装する必要があります。手順を非常に明確に説明しています。
大きな数値を保持できる独自のデータ型を実装するか、このようなライブラリを使用する必要があります。