加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 如何以反向字节顺序打印变量?

发布时间:2020-12-15 23:26:19 所属栏目:大数据 来源:网络整理
导读:我正在尝试将变量$num转换为其反向字节顺序并将其打印出来: my $num = 0x5514ddb7;my $s = pack('I!',$num);print "$sn"; 它打印为一些不可打印的字符,在十六进制编辑器中看起来是正确的,但是如何才能在控制台上读取它?我已经尝试过了: print sprintf("%
我正在尝试将变量$num转换为其反向字节顺序并将其打印出来:

my $num = 0x5514ddb7;
my $s = pack('I!',$num);
print "$sn";

它打印为一些不可打印的字符,在十六进制编辑器中看起来是正确的,但是如何才能在控制台上读取它?我已经尝试过了:

print sprintf("%#xn",$s);

这使得perl抱怨非数字参数,所以我认为pack返回一个字符串.任何想法如何在控制台上打印出0xb7dd1455,基于$num?

解决方法

你需要使用unpack:

my $num = 0x5514ddb7;
my $s = pack('I<!',$num);
my $x = unpack('I>!',$s);
printf("%#xn",$x);

来自Michael Carman的注释:请注意,字节顺序修饰符(<和>)需要Perl v5.10.对于旧版本的Perl,您必须使用N和V templates.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读