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

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

# 10000000000000000000000000000000 

私はパックを取得できますか/パック - litleエンディアン - 64 - 質問

my $var = 1 << 63; 

からこのような出力を解凍?

# 1000000000000000000000000000000000000000000000000000000000000000 

答えて

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

>Qのビッグエンディアンのバイト順序(符号なし64ビットの "クワッド")を入力します。

+1

注:1)クワッドは、64ビットバージョンのperlでのみ利用できます。 2)バイト順序修飾子は、Perl 5.10以降が必要です。 –