2012-03-07 12 views
9

64bits:¿Hay equivalente `int, short, long` en Perl? sistema de

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

sistema de 32bits:

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

¿Cómo puedo hacer $i 32 bits?

Necesito una operación bit a bit portátil en Perl en cualquier sistema.

+0

La respuesta a la pregunta del título es 'No'; no hay equivalentes a 'int',' short' o 'long' en Perl. –

Respuesta

1

Para operaciones de bits portátiles en Perl, consulte Bit::Vector library en CPAN.

Es compatible con una amplia gama de operaciones bit a bit, por ejemplo:

use Bit::Vector; 

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

Simplemente a nivel de bit, y el resultado con 0xffffffff. Esto no tendrá ningún efecto en un sistema de 32 bits y le dará los 32 bits de orden inferior en un sistema de 64 bits, que es la respuesta que desea.

Cuestiones relacionadas