質問

私はperlのピ,

できるのは簡単で64ビット演算Perl?

例えば、

$operand1 = 0xFFFFFFFFFFFF;   # 48 bit value
$operand2 = 0xFFFFFFFFFFFF;   # 48 bit value

$Result = $operand1 * $operand2;
  • 私は基本的に見 差し替え用のint64_tにperlです。
  • 必要があります。もちろんのこと、場合に 変数が署名または符号なし?
役に立ちましたか?

解決

はい、しかし、あなたはPerlが64ビットのサポート付きでコンパイルされている必要があります。

他のヒント

を参照してください。 BIGINTするます:

  

Perlのための透過的なBigIntegerサポート...

     

範囲オペレータ..以外(基本的な数学演算を含む)すべての演算子はオーバーロードされています。整数の定数は、適切BigIntsとして作成されます。

     

浮動小数点定数は整数に切り捨てられます。すべての部および式の結果も切り捨てられます。

     

整数のとは異なり、このプラグマのみによってそれらのサイズが制限される整数定数を作成します使用可能なメモリとCPU時間...

はい、Perlは自動的にあなたのための大規模な整数演算を処理します。しかし、Perlは符号付きおよび符号なしのタイプ(大整数の範囲に境界が固定されていないので必要がありません)。

との間の区別を提供しません

perlnumber のマニュアルページには、Perlでサポートされているさまざまな数値形式の詳細情報を持っています。

注意してください、Perlで64ビット演算は一つですが、何それはのsprintf%d個の%Uと%sが表示され、第二です。 現在のperlのバージョンは問題なく64-ビットをサポートしていますが、sprintfの%dの形式ではありません、%bの同様ます。

use bigintは、Perlが整数オーバーフローすることなく、正確に任意のサイズの整数を扱うようになります。

例:ます。

use bigint;
print 1 << 256;

印刷されます:

115792089237316195423570985008687907853269984665640564039457584007913129639936
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top