2015-03-23 4 views
1

Я хочу удалить несколько цифр из номера 24-bit binary и преобразовать его в 18-bit binary номер.Perl удалить цифры из двоичного числа

Например:

если Binary номер

bin24=111100111011111000100111 

Я хочу, чтобы удалить биты 23:22, 15:14 и 7:6 и выход должен быть

bin18=110011111110100111 

Я знаю, что могу это сделать с помощью substr() и объединить. Просто хотел узнать, смогу ли я сделать это в одной строке?

ответ

7
$bin18 = join '', unpack('x2 a6 x2 a6 x2 a6', $bin24); 
+0

Ах, кто-то с лучшим распознаванием образов +1. –

+0

Немного повествования было бы хорошо – Borodin

1
my $bin18 = reverse join '', (reverse ($bin24 =~ /([01])/g))[0 .. 5, 8 .. 13, 16 ..21]; 

и другие варианты по теме.

+0

спасибо. Оно работает. – Samss77

Смежные вопросы