打包/解压 - litle endian - 64位 - 问题

sid*_*com 3 perl unpack pack

#!/usr/bin/env perl
use warnings;
use 5.012;

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

# 10000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

我怎样才能打包/打包

my $var = 1 << 63;
Run Code Online (Sandbox Code Playgroud)

像这样的输出?

# 1000000000000000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

mob*_*mob 5

say unpack("B*", pack( "Q>", $var ));
Run Code Online (Sandbox Code Playgroud)

>部队在大端字节顺序Q(64位无符号"四")类型.

  • 注意:1) Quad 仅适用于 64 位版本的 perl。2) 字节顺序修饰符需要 Perl 5.10 或更高版本。 (2认同)