私はperlの初心者です。
Perl で単純に 64 ビット演算を使用できますか?
例えば
$operand1 = 0xFFFFFFFFFFFF; # 48 bit value
$operand2 = 0xFFFFFFFFFFFF; # 48 bit value
$Result = $operand1 * $operand2;
- 私は基本的に、perl の int64_t の代わりを探しています。
- 変数が署名されているか署名されていないかを言及する方法はありますか?
はい。ただし、Perl を 64 ビット サポートでコンパイルする必要があります。
はい、Perl は大きな整数演算を自動的に処理します。ただし、Perl は符号付きと符号なしの型の区別を提供しません (大きな整数の範囲には固定された境界がないため、その必要はありません)。
perlnumberマニュアル ページには、Perl でサポートされているさまざまな数値形式に関する詳細情報があります。
Perl の 64 ビット演算は 1 ですが、sprintf %d %u と %s で表示されるのは 2 番目です。現在の perl バージョンは 64 ビットを問題なくサポートしていますが、sprintf %d 形式はサポートしていません。%b 同様です。
use bigint
Perl が任意のサイズの整数を整数のオーバーフローなしに正しく扱えるようにします。
例えば。:
use bigint;
print 1 << 256;
印刷されます:
115792089237316195423570985008687907853269984665640564039457584007913129639936