gpt4 book ai didi

perl - 如何以相反的字节顺序打印变量?

转载 作者:行者123 更新时间:2023-12-04 22:25:32 25 4
gpt4 key购买 nike

我正在尝试将变量 $num 转换为其反向字节顺序并将其打印出来:

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

它打印为一些不可打印的字符,在十六进制编辑器中它看起来是正确的,但是如何在控制台上读取它?我已经试过了:
print sprintf("%#x\n",$s);

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

最佳答案

您需要使用 unpack :

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

来自 Michael Carman 的评论:请注意字节顺序修饰符( <> )需要 Perl v5.10+。对于旧版本的 Perl,您必须改用 NV templates

关于perl - 如何以相反的字节顺序打印变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com