Perl で任意の長さの整数を使用する標準的な方法はありますか? テスト用に x64 アセンブリを生成するコードに取り組んでいますが、一度に 32 ビットを操作するのにうんざりしています。
私は Perl 5.10.0 を使っています。
Perl で任意の長さの整数を使用する標準的な方法はありますか? テスト用に x64 アセンブリを生成するコードに取り組んでいますが、一度に 32 ビットを操作するのにうんざりしています。
私は Perl 5.10.0 を使っています。
大きな整数のみを使用する場合はbigint
、ファイルをスコープできる、を使用できます。
use bigint;
または単に限られた範囲:
{
use bigint;
...;
}
大きな浮動小数点数と大きな整数が必要な場合は、bignum
プラグマを同じように使用できます。いずれにせよ、これらはプログラムをわずかに遅くします(または、多くの数学を行っている場合は大幅に遅くなります)。したがって、本当に必要な部分にのみ使用する必要があります。ただし、速い方が正しいよりはましではありません。:)
どの数値が数学を使用するかを非常に正確に制御したい場合は、すべてにセマンティクスをbig*
適用するのではなく、それらを実装する基礎となるクラスを使用して、自分でオブジェクトを作成できます。そのモジュールbig*
を見てください。Math::Big*
これについては、Perlのマスターのベンチマークの章で詳しく説明します。これは、コンピューターが高速すぎて階乗を低速関数として使用できないためです。また、次の効果的なPerlプログラミング、第2版に大きな数のセクションを追加しました。