perl中的位选择
Posted
技术标签:
【中文标题】perl中的位选择【英文标题】:Bit selection in perl 【发布时间】:2019-08-09 11:37:05 【问题描述】:我们如何在 perl 代码中位选择变量?
我是 perl 新手,我有一个场景,我需要从文件中提取特定格式并将输入提供给另一个模块进行分析。
目前我已经提取了所需的 16 位十六进制模式。 现在从这个 16bits 十六进制格式,我只想要 LSB 10bits。 请参考以下示例(这是一个示例代码,我只使用了我的要求的 1 行)
use strict;
my $string = "HDR 0c0d PlD 1000 GAP 412";
$string =~ s/.*HDR\s(\S+).*/$1/g;
print "$string\n";
my $hex = hex($string);
print "$hex";
$hex
的输出是 3095,即 16bit 16’b0011000010000101
现在我只需要提取 LSB 10bits(0010000101
),请告诉我一些简单的方法来做到这一点。
【问题讨论】:
【参考方案1】:使用位掩码选择您需要的位。要选择正确的 10 位,您可以使用:
my $x = 0xfff0;
print $x & 0x3ff;
输出是
1008
0xfff0 十位的十进制数
【讨论】:
谢谢@oklas,你的逻辑有帮助! 欢迎您!不要忘记标记答案已解决。并投票选出您喜欢的答案,使其他人可见。 (累积对您的 q/a 的一些投票后,您将可以投票)以上是关于perl中的位选择的主要内容,如果未能解决你的问题,请参考以下文章