64位系统:
$i=2;print ~$i; # 18446744073709551613
32位系统:
$i=2;print ~$i; # 4294967293
如何制作$i
32位?
我需要在任何系统中在Perl中进行便携式按位操作。
答案 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);