Вопрос по информатике:
По каналу связи получена последовательность байтов, если интерпретировать их как однобайтовые беззнаковые целые числа, то она записывается:
1, 128, 133, 55, 2, 5, 127, 131, 33
Эта последовательность перед передачей была закодирована RLE-методом. Раскодируйте последовательность, определите и запишите в ответ количество байт в полученной последовательности.
Информация:
Упаковка информации методом RLE-кодирования состоит в следующем. Упакованная последовательность содержит управляющие байты, за каждым управляющим байтом следует один или несколько байтов данных. Если старший бит управляющего байта равен 1, то следующий за управляющим байт данных нужно повторить столько раз, сколько записано в оставшихся 7 битах управляющего байта. Если же старший бит управляющего байта равен 0, то надо взять несколько следующих байтов данных без изменения. Сколько именно – записано в оставшихся 7 битах управляющего байта. Например, управляющий байт 10000111 говорит о том, что следующий за ним байт надо повторить 7 раз, а управляющий байт 00000100 – о том, что следующие за ним 4 байта надо взять без изменений.
- 11.10.2017 23:50
- Информатика
- remove_red_eye 8641
- thumb_up 77
Ответы и объяснения 1
Имеем байтики в 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 байт.
- 13.10.2017 17:33
- thumb_up 12
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.