打包/解包 - 小端 - 64 位 - 问题
Posted
技术标签:
【中文标题】打包/解包 - 小端 - 64 位 - 问题【英文标题】:pack/unpack - litle endian - 64bit - question 【发布时间】:2011-01-12 17:59:32 【问题描述】:#!/usr/bin/env perl
use warnings;
use 5.012;
my $var = 1 << 31;
say unpack( "B*", pack( "N", $var ) );
# 10000000000000000000000000000000
我如何从
获取打包/解包my $var = 1 << 63;
这样的输出?
# 1000000000000000000000000000000000000000000000000000000000000000
【问题讨论】:
【参考方案1】:say unpack("B*", pack( "Q>", $var ));
>
强制 Q
(无符号 64 位“quad”)类型采用 big-endian 字节顺序。
【讨论】:
注意:1) Quads 仅适用于 64 位版本的 perl。 2) 字节顺序修饰符需要 Perl 5.10 或更新版本。以上是关于打包/解包 - 小端 - 64 位 - 问题的主要内容,如果未能解决你的问题,请参考以下文章