11

私はperlの初心者です。

Perl で単純に 64 ビット演算を使用できますか?

例えば

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

$Result = $operand1 * $operand2;
  • 私は基本的に、perl の int64_t の代わりを探しています。
  • 変数が署名されているか署名されていないかを言及する方法はありますか?
4

5 に答える 5

14

はい。ただし、Perl を 64 ビット サポートでコンパイルする必要があります。

于 2009-12-08T02:40:44.633 に答える
11

bigintを参照してください:

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

範囲演算子を除くすべての演算子 (基本的な数学演算を含む)..はオーバーロードされます。整数定数は適切な BigInt として作成されます。

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

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

于 2009-12-08T02:42:34.273 に答える
5

はい、Perl は大きな整数演算を自動的に処理します。ただし、Perl は符号付きと符号なしの型の区別を提供しません (大きな整数の範囲には固定された境界がないため、その必要はありません)。

perlnumberマニュアル ページには、Perl でサポートされているさまざまな数値形式に関する詳細情報があります

于 2009-12-08T02:38:59.817 に答える
0

Perl の 64 ビット演算は 1 ですが、sprintf %d %u と %s で表示されるのは 2 番目です。現在の perl バージョンは 64 ビットを問題なくサポートしていますが、sprintf %d 形式はサポートしていません。%b 同様です。

于 2013-05-16T11:57:16.147 に答える
0

use bigintPerl が任意のサイズの整数を整数のオーバーフローなしに正しく扱えるようにします。

例えば。:

use bigint;
print 1 << 256;

印刷されます:

115792089237316195423570985008687907853269984665640564039457584007913129639936
于 2018-02-07T17:08:31.590 に答える