我想从24-bit binary
号码中删除几位数字并将其转换为18-bit binary
个号码。
例如:
如果是二进制数
bin24=111100111011111000100111
我想删除位23:22
,15:14
和7:6
,输出应为
bin18=110011111110100111
我知道我可以使用substr()
执行此操作并连接。只是想知道我能否在一行中做到这一点?。
答案 0 :(得分:7)
$bin18 = join '', unpack('x2 a6 x2 a6 x2 a6', $bin24);
答案 1 :(得分:1)
my $bin18 = reverse join '', (reverse ($bin24 =~ /([01])/g))[0 .. 5, 8 .. 13, 16 ..21];
以及主题的其他变体。