leon7771
07.04.2023 09:19

По каналу связи получена последовательность байтов, если интерпретировать их как однобайтовые беззнаковые целые числа, то она записывается: 1, 128, 133, 55, 2, 5, 127, 131, 33 эта последовательность перед передачей была закодирована rle-методом. раскодируйте последовательность, определите и запишите в ответ количество байт в полученной последовательности. информация: упаковка информации методом rle-кодирования состоит в следующем. упакованная последовательность содержит байты, за каждым байтом следует один или несколько байтов данных. если старший бит байта равен 1, то следующий за байт данных нужно повторить столько раз, сколько записано в оставшихся 7 битах байта. если же старший бит байта равен 0, то надо взять несколько следующих байтов данных без изменения. сколько именно – записано в оставшихся 7 битах байта. например, байт 10000111 говорит о том, что следующий за ним байт надо повторить 7 раз, а байт 00000100 – о том, что следующие за ним 4 байта надо взять без изменений.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
maksot2006ox6gx2
27.05.2020 20:27

Имеем байтики в RLE:

 

0x01, 0x80, 0x85, 0x37, 0x02, 0x05, 0x7F, 0x83, 0x21 - в шестнадцатеричной

 

%0000 0001, %1000 0000, %1000 0101, %0011 1111, %0000 0010, %0000 0101, %0111 1111, %1000 0011, %0010 0001 - в двоичной

 

Декодируем:

 

0x01 0x80 > 0x80 (берём 1 последующий байт)

0x85 0x37 > 0x37 0x37 0x37 0x37 0x37 (повторяем следующий байт 5 раз)

0x02 0x05 0x7F --> 0x05 0x7F (2 последующих байта)

0x83 0x21 --> 0x21 0x21 0x21 (повторяем 0x21 3 раза)

 

Декодированная последовательность байт:

 

0x80 0x37 0x37 0x37 0x37 0x37 0x05 0x7F 0x21 0x21 0x21

 

Всего 11 байт.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота