2012-03-07 33 views
9

64bits hệ thống:Có tương đương `int, short, long` trong Perl không?

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

hệ thống 32bits:

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

Làm thế nào tôi có thể làm cho $i 32 bit?

Tôi cần một thao tác bitwise di động trong Perl trong bất kỳ hệ thống nào.

+0

Câu trả lời cho câu hỏi tiêu đề của bạn là 'Không'; không tương đương với 'int',' short' hoặc 'long' trong Perl. –

Trả lời

1

Đối với các thao tác bitwise di động trong Perl, hãy xem Bit::Vector library trên CPAN.

Nó hỗ trợ một loạt các hoạt động Bitwise, ví dụ:

use Bit::Vector; 

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

Chỉ cần bitwise và kết quả là 0xffffffff. Điều này sẽ không có hiệu lực trên một hệ thống 32-bit, và cung cấp cho bạn các bit 32 bit thấp trên một hệ thống 64-bit, đó là câu trả lời mà bạn muốn.

Các vấn đề liên quan