【发布时间】:2019-07-29 01:18:14
【问题描述】:
我是 Perl 新手,在使用不同类型时遇到了困难。
我正在尝试获取一个十六进制寄存器,将其转换为二进制,将其用作字符串并从二进制字符串中获取子字符串。
我做了一些搜索,我尝试的是:
my $hex = 0xFA1F;
print "$hex\n";
结果是 "64031" 。第一个惊喜:我不能在 Perl 中打印十六进制值而不仅仅是十进制值吗?
$hex = hex($hex);
print "$hex\n";
结果是 409649。第二个惊喜:我希望结果也是 64031,因为“hex”将十六进制转换为十进制。
my $bin = printf("%b", $hex);
它打印二进制值。有没有办法在不打印的情况下将十六进制转换为 bin?
谢谢, SLP
【问题讨论】:
-
尝试在十六进制常量周围添加引号:
my $hex ='0xFA1F'。如果不是,则将其转换为数字 64031。稍后,当您执行hex(64031)时,64031 被解释为十六进制字符串0x64031 -
谢谢!确实很简单......它对我有用
标签: perl type-conversion hex bin