2011-01-12 10 views
3
#!/usr/bin/env perl 
use warnings; 
use 5.012; 

my $var = 1 << 31; 
say unpack("B*", pack("N", $var) ); 

# 10000000000000000000000000000000 

Wie kann ich mit Pack erhalten/entpacken vonpack/entpacken - litle Endian - 64bit - Frage

my $var = 1 << 63; 

eine Ausgabe wie diese?

# 1000000000000000000000000000000000000000000000000000000000000000 

Antwort

5
say unpack("B*", pack("Q>", $var)); 

Die > Kräfte Big-Endian Byte-Reihenfolge auf den Q (unsigned 64-Bit "Quad") eingeben.

+1

Hinweis: 1) Quads sind nur für 64-Bit-Versionen von Perl verfügbar. 2) Byte Order Modifier erfordern Perl 5.10 oder neuer. –