アプリ版:「スタンプのみでお礼する」機能のリリースについて

表題のとおりなんですけど、現在 C で long long を使わないとうまくいかないところがあるんですけど、同じ事を perl でやるにはどうすればいいのでしょうか? 修正の容易さなどからできれば perl でできればうれしいんですけど。

A 回答 (4件)

(標準モジュールで)


use bigint;
とするだけで自動的に全ての演算子で多倍長整数が扱えるようになります。

この回答への補足

確かに、use bigint; だけで64ビットの計算が正しくできることを確認しました。
ありがとうございました。

補足日時:2006/05/26 11:38
    • good
    • 0

Perl もデフォルトで 64 ビット整数を扱うようにはできるんですが、それは Perl のコンパイル時に決定可能なんです。

なので既に 32 ビット用でコンパイル済みの Perl では普通の変数で整数を扱うと 32 ビットになります。

尚、整数を扱うというのはたとえば ~0 の計算をさせたときです。実際に現在私は Athlon 64 という64ビット CPU の PC に Linux を入れて使っていますが、それの Perl で

perl -e 'printf "%x\n", ~0'

をやらせると

ffffffffffffffff

が出力されます。これは整数が64ビットで扱われることを意味します。

但し Perl は通常の数値計算では C 言語の double (この頃のPCでは64ビット浮動小数点) になっています。これは指数部を含むので64ビット整数よりもビット数が少なくなります。
    • good
    • 0

でっかい数値計算が必要な場合は


CPANからDLしてインストールする必要はありますが、

use Math::Pari;

参考URL:http://search.cpan.org/dist/Math-Pari/Pari.pm

この回答への補足

お答えありがとうございます。これは本格的な多倍長演算のパッケージですね。64ビットで十分なのでそこまでは必要ないのですが、適当なものが無いのなら、これを使わせていただきます。

補足日時:2006/05/26 00:01
    • good
    • 0

残念ながら、PerlにはCのようなintやlong intなどはありません。



数値型や文字型なども、あるようでありません。

変数は $ で始まる変数名で、格納する値の文字によって数値として扱えたり文字として扱うことが出来ます。

参考URL:http://www.tohoho-web.com/www.htm

この回答への補足

お答えありがとうございます。簡単に使える64ビット整数処理の方法はないのですね。

補足日時:2006/05/26 00:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!