Есть ли эквивалентный `int, short, long` в Perl? - PullRequest
9 голосов
/ 07 марта 2012

64-битная система:

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

32-битная система:

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

Как я могу сделать $i 32 бита?

Мне нужна переносимая побитовая операция в Perl в любой системе.

Ответы [ 2 ]

10 голосов
/ 07 марта 2012

Только поразрядно - и результат с 0xffffffff. Это не повлияет на 32-разрядную систему и даст вам 32-разрядные младшие разряды в 64-разрядной системе, что является желаемым ответом.

1 голос
/ 07 марта 2012

Для переносимых побитовых операций в Perl, проверьте Bit :: Vector library в CPAN.

Поддерживает широкий спектр побитовых операций, например:

use Bit::Vector;

my $vector = Bit::Vector->new_Dec(32, "2"); # 32-bit vector for the decimal value 2
$vector->Negate($vector);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...