在Perl中是否有等效的`int,short,long`?

时间:2012-03-07 02:46:09

标签: perl

64位系统:

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

32位系统:

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

如何制作$i 32位?

我需要在任何系统中在Perl中进行便携式按位操作。

2 个答案:

答案 0 :(得分:10)

只是按位 - 和0xffffffff的结果。这对32位系统没有影响,并且在64位系统上为您提供低位32位,这就是您想要的答案。

答案 1 :(得分: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);