Perl从二进制数中删除数字
我想从Perl从二进制数中删除数字,perl,Perl,我想从24位二进制数字中删除几个数字,并将其转换为18位二进制数字 例如: 中频二进制数 bin24=111100111011111000100111 我想删除位23:22,15:14和7:6,输出应该是 bin18=110011111110100111 我知道我可以使用substr()和连接来实现这一点。我只是想知道我是否能在一行中做到这一点 my $bin18 = reverse join '', (reverse ($bin24 =~ /([01])/g))[0 .. 5, 8 ..
24位二进制
数字中删除几个数字,并将其转换为18位二进制
数字
例如:
中频二进制数
bin24=111100111011111000100111
我想删除位23:22
,15:14
和7:6
,输出应该是
bin18=110011111110100111
我知道我可以使用substr()
和连接来实现这一点。我只是想知道我是否能在一行中做到这一点
my $bin18 = reverse join '', (reverse ($bin24 =~ /([01])/g))[0 .. 5, 8 .. 13, 16 ..21];
和其他关于这个主题的变化
$bin18 = join '', unpack('x2 a6 x2 a6 x2 a6', $bin24);
以及主题的其他变体。啊,有更好的模式识别+1的人。一点叙述会更好啊,有更好的模式识别+1的人。一点叙述会更好
$bin18 = join '', unpack('x2 a6 x2 a6 x2 a6', $bin24);