2012-03-07 10 views
9

64-ビットシステム:Perlに相当する `int、short、long`はありますか?

$i=2;print ~$i; # 18446744073709551613 

32ビットシステム:

$i=2;print ~$i; # 4294967293 

がどのように私は$i 32ビットを作ることができますか?

どのシステムでもPerlでビット単位の移植が必要です。

+0

答えが「いいえ」です。 Perlでは 'int'、' short'、 'long'に相当するものはありません。 –

答えて

1

Perlで移植可能なビット演算の場合は、CPANのBit::Vector libraryをチェックしてください。

それは例えば、ビット演算の広い範囲をサポートしています。あなたの見出しの質問に

use Bit::Vector; 

my $vector = Bit::Vector->new_Dec(32, "2"); # 32-bit vector for the decimal value 2 
$vector->Negate($vector); 
10

ちょうどビットごとに、結果は0xffffffffとなります。これは32ビットシステムには何の影響も及ぼさず、64ビットシステムの下位32ビットを提供します。これはあなたが望む答えです。

関連する問題